所有的错误类型定义在 ...\borland\delphi6\source\trl\Sys\sysutils.pas 凡是 E 打头的几乎全是。 但这些类型不一定包括数据库返回的错误信息。try ... except on E: Exception do Showmessage(E.Message); end; //可以获得数据库返回的错误信息的内容。你也可以试试以下几种方法:try ... except on EZeroDivide do HandleZeroDivide; on EOverflow do HandleOverflow; on EMathError do HandleMathError; else HandleAllOthers; //处理所有其它异常 end;try ... except HandleException; //默认处理 end;***************************************************** try ... except on E: Exception do Showmessage(E.Classname); end; 可以返回错误的类型,但一般数据库错误会笼统的显示 EDatabaseError ******************************************************你在调试程序的时候Delphi会在每个Exception处中断,无论你是否捕获。运行你的*.exe你会发现一切如你所愿。如果你想在调试时不想系统弹出警告对话框,菜单 Tools\Debugger Options...\Language Exceptions\Stop on Delphi Exceptions 的钩钩去掉;Tools\Debugger Options...\OS Exceptions\Handled by 选user program;on resume选 Run Unhandled
所以你先找到Exception的Classname,再Handle它,不就行了吗
先找出错误类型 try ... except on E: Exception do Showmessage(E.Classname); end; //假设弹出错误类型为ESomeError根据错误类型写你的错误捕获 try ... except on ESomeError do Showmessage('外码错误'); else HandleException; //默认处理 end;
凡是 E 打头的几乎全是。
但这些类型不一定包括数据库返回的错误信息。try
...
except
on E: Exception do Showmessage(E.Message);
end; //可以获得数据库返回的错误信息的内容。你也可以试试以下几种方法:try
...
except
on EZeroDivide do HandleZeroDivide;
on EOverflow do HandleOverflow;
on EMathError do HandleMathError;
else
HandleAllOthers; //处理所有其它异常
end;try
...
except
HandleException; //默认处理
end;*****************************************************
try
...
except
on E: Exception do Showmessage(E.Classname);
end;
可以返回错误的类型,但一般数据库错误会笼统的显示 EDatabaseError
******************************************************你在调试程序的时候Delphi会在每个Exception处中断,无论你是否捕获。运行你的*.exe你会发现一切如你所愿。如果你想在调试时不想系统弹出警告对话框,菜单 Tools\Debugger Options...\Language Exceptions\Stop on Delphi Exceptions 的钩钩去掉;Tools\Debugger Options...\OS Exceptions\Handled by 选user program;on resume选 Run Unhandled
try
...
except
on E: Exception do Showmessage(E.Classname);
end; //假设弹出错误类型为ESomeError根据错误类型写你的错误捕获
try
...
except
on ESomeError do Showmessage('外码错误');
else
HandleException; //默认处理
end;