Does anybody know what this exception code signifies, or where I might
be able to find more details about Dr Watson Exception Codes? I tried
searching the Microsoft site without any luck.
Thanks in advance for your time
Alan Wright
The exception codes are declared in Winnt.h of the Platform SDK. C0000025 is
STATUS_NONCONTINUABLE_EXCEPTION.
System.pas also declares some exception codes, the most important of these
being cDelphiException, a Delphi Exception, which is 0EEDFADE.
The application probablly terminated without handling the exception. This
has happened to me if in the project file, I don't call Application.Run and
I don't put a try/except around everything. I have found that Windows NT
shows 0EEDFADE (as I would expect) and Windows 2000 shows C0000025 (which is
not suprising). If you make sure you are handling the exception, you should
see the "real" error message.
Paul :)
"Alan Wright" <Athene...@btinternet.com> wrote in message
news:399BE404...@btinternet.com...
Thanks for the assistance.
The error actually appears in NT4 Dr watson as "c0000025" and looking further
down the log it seems to indicate that ntdll.dll is the culprit with a function
called rtlrandom throwing the fault.
Are you saying that in the dpr file for this NTService I need the following??:
try
Application.run
except
On E: Exception do
begin
Log message here
end
end;
I ask instead of testing because the error is intermittent and usually occurs
when the service has not been required to do anything for sometime (usually
about a month between user activity)
Alan Wright
> Are you saying that in the dpr file for this NTService I need the
following??:
>
> try
> Application.run
> except
> On E: Exception do
> begin
> Log message here
> end
> end;
Yep :)
> I ask instead of testing because the error is intermittent and usually
occurs
> when the service has not been required to do anything for sometime
(usually
> about a month between user activity)
Oh. I have to admit I don't know how an NT Service works. Just saying that
you probably should handle an exception wherever one might occur. That way,
what you do with the exception (eg. log it) is under your control, not
Windows or Dr. Watson.
Paul :)
The application has several exception handlers within the procedures as well as
an OnException event handler for the application via one of those
ApplicationEvent Components. I presumed that this would catch all events for
the application that were not handled within procedures.
Because the log is showing a call to rtlRandom on ntdll.dll to be the cause of
the error I am starting to wonder if there is some inherent problem in NT's
handling of services that are dormant for long periods.
If I discover anything interesting I will post it.
Thanks again
Alan %) (I used to be a boxer!)
Having exception handlers in "several" places is not ALL places. If you
handle exceptions in all entry points of your program, you will catch all
exceptions. I don't see any way that won't be the case.
Setting Application.OnException does NOT do what you expect, because it is
ONLY called when you call Application.HandleException (or if the VCL does,
as it does in response to an exception when handling any message).
As I said, I don't know much about NT services, but I suggest you read the
documentation again very carefully. Perhaps you missed something which
explains your error.
Paul :)
"Alan Wright" <Athene...@btinternet.com> wrote in message
news:39A1085A...@btinternet.com...
<<Setting Application.OnException does NOT do what you expect, because it is
<<ONLY called when you call Application.HandleException (or if the VCL does,
<<as it does in response to an exception when handling any message).
The root of the problem lies in my mis-interpretation of what
Application.OnException meant as I assumed I was catching all exceptions not
picked up in localised handlers.
Alan