在delphi中
调用abort其实也是触发一个"operation aborted"异常.
{ Raise abort exception }
procedure Abort;
function ReturnAddr: Pointer;
asm
MOV EAX,[EBP + 4]
end;
begin
raise EAbort.CreateRes(@SOperationAborted) at ReturnAddr;
end;
你可以在应用程序这个级别截获这个异常并把它给忽略掉。
如:
你在过程中写下
throw new Exception("abort");
在main()主函数中
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new UI.Form1());
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
//在这里处理你抛出abort异常
if (string.Equals(e.Exception.Message, "abort"))
{
//在这里你什么也不做,就忽略了抛出的abort异常!
//MessageBox.Show(e.Exception.Message);
}
}
}
还有什么疑问可以再提