我正在捕获异常,对于该类中的特定异常类和错误代码,我会进行一些自定义处理。对于所有其他异常,我想使用通用错误处理程序。像这样:
on E:EADSDatabaseError do
begin
case E.ACEErrorCode of
5132:
begin
//Custom handling
end;
else
begin
raise;
end;
end;
end;
on E:Exception do
begin
//usual handling
end;
对于原始错误中的大多数代码,我想进入通用错误处理程序。但是,重新加载它似乎不允许触发更一般的异常类处理程序。 (我不确定我会期待它。我以前从未做过这种事。)
我有两个try/excepts
的最佳选择吗?
答案 0 :(得分:7)
我可以看到3种可能的解决方案,
类似这样的事情
on E:Exception do
begin
if ( e is EADSDatabaseError ) and
( EADSDatabaseError(e).ACEErrorCode = 5132 then
begin
//Custom handling
end else
begin
//usual handling
end;
end;
在这种情况下,我会使用第三个。