【发布时间】:2018-04-24 14:07:25
【问题描述】:
我的代码是这样的
var i = 0;
try
{
i = faultyProcedure();
}
catch (Exception ex)
{
try
{
throw new CustomException("faultyProcedure called", ex);
}
catch (CustomException) {}
}
虽然有效,但看起来很傻。 自定义异常会执行所有日志记录、邮件发送等操作,甚至在必要时退出应用程序。
有没有办法让自定义异常捕获/杀死自己,所以不需要内部的 try/catch 块?
【问题讨论】:
-
你的意思是
CustomExceptionconstructor 能完成所有这些工作吗?如果是这样,只需将其移动到您可以调用而不会引发异常的方法中。 -
创建一个继承自 Exception 的类,然后在需要处理该异常的任何地方将其抛出到外部
catch。 MSDN -
你为什么要抛出 CustomException 呢?只为了下一刻捕捉?您的 CustomException 仅用于异常处理(日志记录、邮件等) - 将原始异常传递给将执行此操作的方法。
标签: c# custom-exceptions custom-error-handling