考虑以下设计模式:
do {
// Some logic here
if (AnErrorOccurs()) {
break;
}
// Some more logic here
if (ADifferentErrorOccurs()) {
break;
}
// Code completed successfully
return someValue;
} while (false);
// Lengthy error-handling code here
return errorCode;
以这种方式使用循环是否合适?我只想要break
语句的功能,以便我可以将错误处理代码放在一个地方。一个单独的方法也可以正常工作,但是假设范围内存在大量变量,这些变量作为参数传递是不实用或不安全的。
或try-finally
模式是处理这种情况的更好方法吗?或抛出一大堆自定义异常?我只是想知道其他人如何处理它,以便拥有最新和最易维护的代码。
答案 0 :(得分:0)
我认为如果你想处理异常,你应该使用try catch
语句而不是do while
,因为代码应该能够自我文档而不需要在那里放置注释。如果要在代码中处理异常,那么try catch
语句似乎不合适吗?据说我认为最好在try catch
中使用自定义异常来处理您的特定异常。
在需要任何特定条件的方法中会抛出异常。例如,Convert.toInt32(string s)
here。当条件不符合时,此Convert.toInt32(string s)
会抛出FormatException
或OverflowException
。
该方法中没有try catch
。 try catch
将放置在调用Convert.toInt32(string s)
。