我想知道在这种一般性陈述类型中对于什么是更好的做法有任何共识。
if(CouldDoSomething())
DoThatThing();
else
WriteErrors(GetTheErrorsThatWouldHaveResulted());
这可能需要两倍的工作量。因为你必须检查潜在的问题,然后做你想做的事情或回去收到错误信息。
它还需要3个独立的功能:
CouldDoSomething
DoThatThing
和GetTheErrorsThatWouldHaveResulted
,而
string errorString=TryToDoSomeThing();
if(!string.isNullOrEmpty(errorString))
WriteErrors(errorString);
可能看起来不干净,但只需要一个函数TryToDoSomething
,这意味着开销更少。一个人不必重复操作来检查你是否可以做那件事,或者找到你做这件事时可能导致的错误。
可能有更多方法可以实现,例如使用try/catch blocks
。你的个人喜好是什么?对这类问题有共识吗?
答案 0 :(得分:1)
如果它看起来像异常,你应该使用try / catch样式
如果它是真/假(并且在特征中没有进化)那么你可以返回结果标志。就我所见,返回错误字符串并不是那么好。