异常处理不中断

Vib*_*nRC 4 delphi exception-handling

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

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

try

  try
  //statement1
  except 
  end;

  try
  //statement2
  except 
  end;

  try
  //statement3
  except 
  end;

finally
//something
end;
Run Code Online (Sandbox Code Playgroud)

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

有没有更好的方法来实现这一点

Dav*_*nan 5

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

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

try
  statement1;
  statement2;
  statement3;
except
  //handle exceptions
end;
Run Code Online (Sandbox Code Playgroud)

然后,如果有异常statement1,则其他两行不会执行.

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

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

  • +1 - 这有一种"你做错了"的味道.也许他正在移植以"on next resume next"开头的VB代码 (2认同)