让我们看看这个简单的 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 中的 throw 是否返回并检查下一个 catch ,然后是下一个,依此类推?
  • 有没有办法回到原来的try?或者这是不好的编程习惯?
  • 最佳答案

  • 是的 catch 块中的 throw 语句将被任何包装器/下一个 catch 块重新捕获。
  • 使用 Basic Goto: like 语句修改程序流是一种糟糕的编程习惯,因此不建议返回原始代码块(这也是不切实际的)。此外,您总是尝试处理靠近它们发生位置的异常,因为调试器输出和堆栈跟踪会以这种方式提供更多信息。
  • 关于c# - 尝试/捕捉 - 回到最初的尝试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5665211/

    10-14 16:34