异常处理不中断

时间:2011-11-19 14:18:17

标签: delphi exception-handling

我的源代码的某些部分嵌套在try语句中,以便处理一些运行时错误,同时,即使由于运行时错误而未执行上一行,也必须尝试执行每一行。

目前我的代码看起来像这样

try

  try
  //statement1
  except 
  end;

  try
  //statement2
  except 
  end;

  try
  //statement3
  except 
  end;

finally
//something
end;

我非常肯定会以错误的方式进行,即使最终的输出效果很好,我必须做几十行。

有没有更好的方法来实现这个

1 个答案:

答案 0 :(得分:5)

如果您希望每个语句都执行,那么您必须按照自己的方式编写它。请注意,在这种情况下可能不需要try / finally,因为您正在吞下所有异常。

然而,代码确实对我来说有点奇怪。我想知道你是否真的需要执行每一个语句。通常你会写:

try
  statement1;
  statement2;
  statement3;
except
  //handle exceptions
end;

然后,如果statement1中存在异常,则其他两行不会执行。

但是,更常见的是不要处理异常并让它们浮动到某个更高级别的处理程序。如果您使用异常进行例行逻辑决策,那么这将被视为不良做法。

我认为发布一些处理异常的代码以及您希望发生的异常的一些细节会对您有所帮助。然后我们可以给你一些更具体的建议。