我正在尝试编写一些代码,捕获特定的异常并抛出一个更有用的异常,供调用堆栈更高层次的处理,但也捕获更普遍的异常并处理它们。
这个代码是像这样的:
try
{
// Do stuff
}
catch (SomeException e)
{
throw new SomeExceptionWithContextInfo();
}
catch (Exception e)
{
// Handle unexpected exception gracefully
}
我遇到的问题是一般的异常捕捉了我的新异常。有没有办法避免这种情况发生?
我的当前解决方案涉及检查异常的类型,并且如果它的类型是我刚刚创建的类型,则再次抛出它。