代码模式:从一次性循环中断

时间:2017-07-12 03:33:51

标签: design-patterns pseudocode

考虑以下设计模式:

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模式是处理这种情况的更好方法吗?或抛出一大堆自定义异常?我只是想知道其他人如何处理它,以便拥有最新和最易维护的代码。

1 个答案:

答案 0 :(得分:0)

我认为如果你想处理异常,你应该使用try catch语句而不是do while,因为代码应该能够自我文档而不需要在那里放置注释。如果要在代码中处理异常,那么try catch语句似乎不合适吗?据说我认为最好在try catch中使用自定义异常来处理您的特定异常。

在需要任何特定条件的方法中会抛出异常。例如,Convert.toInt32(string s) here。当条件不符合时,此Convert.toInt32(string s)会抛出FormatExceptionOverflowException。 该方法中没有try catchtry catch将放置在调用Convert.toInt32(string s)

的方法中