处理异常

Working with Exceptions

喂!我想征求有关使用异常的建议。我想简化这个...

if (functionSomething1) and (functionSomething2) and (functionSomething3) then
  Do Something Good
else
  Raise Exception(errormsg_functionSomething1IsFalse or errormsg_functionSomething2IsFalse or errormsg_functionSomething3IsFalse);

我的所有函数都返回一个布尔值。

逐一获取错误消息的最佳方法是什么?

例如... 如果 functionSomething1False 那么我应该得到 errormsg_functionSomething1IsFalse

如果 functionSomething2False 那么我应该得到 errormsg_functionSomething1IsFalse 等...

我认为 If-then-else 不是一个好的解决方案。

案例或尝试除外?你怎么看?

感谢您的回答!

像这样:

if not functionSomething1 then
  raise EMyException.Create(errormsg_functionSomething1IsFalse);
if not functionSomething2 then
  raise EMyException.Create(errormsg_functionSomething2IsFalse);
if not functionSomething3 then
  raise EMyException.Create(errormsg_functionSomething3IsFalse);

// do something good

或者在 FunctionSomethingX 中引发异常,尽管这样就不需要它们 return 布尔 'success' 值。

这样做的好处是 FunctionSomethingX 可能了解它失败的原因,因此 return 一个更具描述性的错误消息。

缺点是所有其他调用 FunctionSomethingX 的地方都需要处理它们引发的异常。