Возникает вопрос: могу ли я остановить его распространение из собственного конструктора после создания исключения? рассмотрите приведенный ниже код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TMyErrorClass = class(Exception)
constructor Create(aMsg:String);
end;
TForm2 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
//
raise TMyErrorClass.Create('test');
end;
{ TMyErrorClass}
constructor TMyErrorClass.Create(aMsg: String);
begin
{$IFDEF DEBUG}
Showmessage(aMsg);
{$ELSE}
//here I want to 'kill' the exception
{$ENDIF}
end;
end.
Как я могу прекратить исключение после вызова метода raise, не добавляя try except / finally, где я вызываю исключение?
ЛЭ: У меня есть приложение, которое выросло почти на 2000, вот так ... и я пытаюсь найти альтернативное решение, чтобы написать для него обработку ошибок ...
raise
на самом деле ничего не поднимал. Это значительно усложнит долгосрочное обслуживание вашей программы. - person Rob Kennedy   schedule 16.12.2011raise
операторы в{$IFDEF DEBUG}
. Возможно, это было намерением. - person Marcus Adams   schedule 17.12.2011