
unit Unit2;interfaceuses 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的情况下终止异常,而不是在我提出异常的地方?
LE:我有一个应用程序,它有近2000个这样的加注……而我正试图找到一个替代解决方案来为它编写错误处理….
解决方法 一旦你输入了一个加注语句,只有两种方法可以避免提出异常:>首先提出别的事情.从即将引发的异常的构造函数中,您可以首先创建并引发另一个异常.这将避免你的程序达到第一次加注声明.
>终止线程,这样就无法运行.您可以通过各种方式执行此 *** 作,包括ExitThread,Halt和ExitProcess,它们在此上下文中几乎完全相同.你的程序将不再运行,但至少你已经阻止它提出异常了!
这些都不会解决你试图解决的问题,但他们会按照你在问题中要求的那样做.最重要的是,无论你想做什么,在你已经启动异常提升机制之后平息异常是错误的方法.你不能敲响钟声,也不能解除异常.
总结以上是内存溢出为你收集整理的Delphi – 在引发它之后对它自己的构造函数进行异常处理全部内容,希望文章能够帮你解决Delphi – 在引发它之后对它自己的构造函数进行异常处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)