让我们看看这个简单的 try/catch 示例...
try
{
// User inputs path of a file
if(!ValidPath)
throw new InvalidPathException();
}
catch InvalidPathException e
{
// Log error
// Re-throw the error.
throw;
}
几个问题。两者都可能是简单的答案。
- catch 时是否会返回并检查下一次 catch ,然后是下一次 catch ,依此类推?
- 有没有办法回到原来的尝试?或者这是糟糕的编程习惯?
最佳答案
是的,catch block 中的 throw 语句将被任何包装器/下一个 catch block 重新捕获。
使用 Basic Goto:like 语句修改程序流是一种糟糕的编程习惯,因此不建议返回到原始代码块(这也是不切实际的)。此外,您始终尝试在异常发生的地方处理异常,因为调试器输出和堆栈跟踪将以这种方式提供更多信息。
关于c# - Try/Catch - 回到原来的尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665211/