Page 1 of 1

Catching Exceptions

PostPosted: December 14th, 2007, 1:22 pm
by Kambiz
I want to handle exceptions raised during form creation inside the dpr file, but try except block doesn't catch the exceptions.

Can anybody explain why?

Code: Select all
begin
  Application.Initialize;
  try
    Application.CreateForm(TDM, DM);
    Application.CreateForm(TMainForm, MainForm);
  except
    on E: Exception do
    begin
      TErrorDialog.Execute(E);
      Exit;
    end;
  end;
  Application.Run;
end.


By the way, I use Delphi 7 on XP SP2.

PostPosted: December 18th, 2007, 12:23 pm
by john123
Use OnException to change the default behavior that occurs when an exception is not handled by application code. The OnException event handler is called automatically in the HandleException method.
OnException only handles exceptions that occur during message processing. Exceptions that occur before or after the execution of the application's Run method do not generate OnException events.

If an exception passes through the tryblocks in the application code, the application automatically calls the HandleException method. Unless the exception object is EAbort, HandleException calls the OnException handler, if one exists. Otherwise, it calls ShowException to display a message box indicating an error occurred.

TExceptionEvent is the type of the OnException event. It points to a method that handles exceptions in the application. The Sender parameter is the object that raised the exception, and E is the exception object.
Note:
You can also respond to this event using the TApplicationEvents component, which allows you to assign an event handler using the IDE.

PostPosted: December 18th, 2007, 9:58 pm
by Kambiz
Thanks for the info.