我的方法中有一个try / catch:
}
catch (OurCustomExceptionObject1 ex)
{
txtErrorMessage.InnerHtml = "test 1";
}
catch(OurCustomExceptionObject2 ex)
{
txtErrorMessage.InnerHtml = "test 2";
}
catch (OurCustomExceptionObject3 ex)
{
txtErrorMessage.InnerHtml = "test 3";
}
... rest of code here is being executed after the try/catch
如果捕获到任何异常,我不希望其余代码运行。我正在处理异常。我听说出于某种原因不使用Exit Try。这是真的,这样做很糟糕吗?这是阻止执行代码后执行代码的正确方法吗?
答案 0 :(得分:34)
catch-block中的return
,重新抛出异常,或者从try-block内的try-block下面移动代码。
答案 1 :(得分:2)
立即想到两个选项:
return
直接从每个catch
内部(如BlueRaja建议的那样)errorOccurred
块中为您不想允许的异常设置一个标志(例如catch
),然后将if (errorOccurred) return;
放在整个try / catch块之后后者可能对其他开发人员更具可读性,因为很容易略过catch
内部发生的事情来弄清楚之后会发生什么。看到一个明显的if (errorOccurred) return;
使得很难误解发生的事情。
答案 2 :(得分:1)
从高层次来看,我认为这可能违反(至少)单一责任原则,如果你的代码试图做一些可能失败的事情,然后继续做更多的事情。
为了回答,如果你想做一个黑客(这总是坏的,所以不要),你可以做
bool success = true;
try
{
// the good ol' college try
}
catch (...)
{
success = false;
}
if (success)
{
// do the rest of your stuff
}
编辑或者正如BlueRaja建议的那样,将所有代码放入try块。如果第一位失败,则失败。其余的代码无论如何都不会运行。