2016-08-16 68 views
2

Hy!我想请求使用例外的建议。我想简化这...与例外一起工作

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

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

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

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

如果functionSomething2那么我应该得到 errormsg_functionSomething1IsFalse等等

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

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

感谢您的答案!

回答

7

像这样:

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 
0

或者引发你的异常在FunctionSomethingX,虽然再没有必要为他们返回布尔“成功”的值。

这样做的好处是,FunctionSomethingX可能有一个理解,为什么它失败,因此返回一个更具描述性的错误信息。

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

相关问题