【发布时间】:2013-05-30 15:27:56
【问题描述】:
是否可以执行以下操作:
我想捕获一个自定义异常并用它做点什么 - 很简单:try {...} catch (CustomException) {...}
但是我想运行“catch all”块中使用的代码仍然运行一些与所有catch块相关的其他代码......
try
{
throw new CustomException("An exception.");
}
catch (CustomException ex)
{
// this runs for my custom exception
throw;
}
catch
{
// This runs for all exceptions - including those caught by the CustomException catch
}
或者我是否必须在所有异常情况下将我想做的任何事情(finally 不是一个选项,因为我希望它只针对异常运行)到一个单独的方法/将整个 try/catch 嵌套在另一个(这样)...?
【问题讨论】:
-
在 catch 语句中设置一个标志并使用“finally”对你有用。或者,将所有公共代码分解为
CleanUpAfterException方法,并在每个catch语句的末尾调用它。 -
啊 - 设置标志和“终于”似乎是一种巧妙的解决方案。我没想到。