我需要捕获异常
如果我使用
如果我使用
由于我正在捕获异常,我不知道
当然,如果我使用
有没有一种方法可以重新格式化
catch (Exception ex)
,更改其消息并重新抛出。如果我使用
throw new Exception(newMessage, ex);
,那么我会失去异常的运行时类型,对吗?如果我使用
throw;
,那么我可以保留运行时类型,但是消息不会改变。由于我正在捕获异常,我不知道
ex
可能是哪种派生类型,因此无法构造正确的类型。当然,如果我使用
throw ex;
,我会失去堆栈跟踪信息。有没有一种方法可以重新格式化
ex
的消息并重新抛出它,同时不丢失堆栈或运行时类型信息,而又不需要使用任何奇怪而脆弱的反射技巧?
InnerException
的最内层异常?你在上面有一个类型化的catch
吗? - Manfred Radlwimmer