我希望编写一个处理异常的方法,该方法将在
示例:
catch
块内调用。根据传递的异常类型,异常要么作为新异常的内部异常传递,要么仅重新抛出。如何在第二种情况下保留堆栈跟踪?示例:
public void TestMethod()
{
try
{
// can throw an exception specific to the project or a .Net exception
SomeWorkMethod()
}
catch(Exception ex)
{
HandleException(ex);
}
}
private void HandleException(Exception ex)
{
if(ex is SpecificException)
throw ex; //will not preserve stack trace...
else
throw new SpecificException(ex);
}
我不想做的是,因为这个模式在许多地方都被重复使用,而且没有任何因数分解:
try
{
SomeWorkMethod();
}
catch(Exception ex)
{
if(ex is SpecificException)
throw;
else
throw new SpecificException(ex);
}
SpecificException
添加 catch 呢?catch(SpecificException e){throw;}
- juharr