c# - Try/Catch - 回到原来的尝试

标签 c# exception try-catch

让我们看看这个简单的 try/catch 示例...

try
{
    // User inputs path of a file
    if(!ValidPath)
        throw new InvalidPathException();
}
catch InvalidPathException e
{
    // Log error
    // Re-throw the error.
    throw;     
}

几个问题。两者都可能是简单的答案。

  1. catch 时是否会返回并检查下一次 catch ,然后是下一次 catch ,依此类推?
  2. 有没有办法回到原来的尝试?或者这是糟糕的编程习惯?

最佳答案

  1. 是的,catch block 中的 throw 语句将被任何包装器/下一个 catch block 重新捕获。

  2. 使用 Basic Goto:like 语句修改程序流是一种糟糕的编程习惯,因此不建议返回到原始代码块(这也是不切实际的)。此外,您始终尝试在异常发生的地方处理异常,因为调试器输出和堆栈跟踪将以这种方式提供更多信息。

关于c# - Try/Catch - 回到原来的尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5665211/

相关文章:

php - Zend_Exception 的意义何在?

java 没有捕获 ms sql 存储过程引发错误

c# - Silverlight 可选字段验证

c# - 在 C#/WPF 应用程序中使用 pdflatex.exe 将 TeX 转换为 PDF

c# - SetSysTrayVisible 错误 Windows Phone 8

c# - 在 ASP.NET WebService 上捕获 WebMethod 抛出的自定义异常

unit-testing - PowerMock、Mockito 和来自反射 api 的模拟最终类

c# - SciChart 中的不同点标记

java - 你如何实现重试捕获?

python - 如何仅使用以下三种选择之一使用(while)和(try)语句来处理用户输入的错误