【发布时间】:2017-07-12 03:33:51
【问题描述】:
考虑以下设计模式:
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 模式会是处理这种情况的更好方法吗?还是抛出一大堆自定义异常?我只是想看看其他人如何处理它,以便拥有最整洁和最可维护的代码。
【问题讨论】:
-
你总是保证从
AnErrorOccurs()返回一个布尔值吗?如果没有,那么try-catch -
这不是设计模式。并且 try-finally 也不是一种设计模式。
-
@Hosar 请解释一下。你会怎么称呼它?
-
@Extragorey 是异常处理语句docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
-
@samAlvin
do-while是异常处理语句吗?我不关注。
标签: design-patterns pseudocode