Tag: 投掷

捕获/修改(消息)/ Rethrow相同类型的exception

我想要一个中心位置从exception中提取信息,将所需的所有信息设置为其message参数,然后将该信息重新抛出为相同类型的exception。 更好的解决方案可能是在最终处理exception的地方执行此操作(并记录其消息),但是..我可以控制抛出exception的地方,而不是接收exception的地方记录其消息内容。 除了那个设计决定,并且假设该消息是一个只读属性,我会(?)以某种方式创建一个新的Exception对象,有没有办法使新的exception对象与原始exception对象的类型相同? 这是我的代码,它不能编译 – 它在throw行(我尝试动态转换对象)时偶然发现。 public static void RethrowExceptionWithFullDetailInMessage(string msg, Exception ex) { Exception curEx = ex; int cnt = 0; while (curEx != null) { msg += “\r\n”; msg += cnt++ + ” ex.message: ” + curEx.Message + “\r\n”; msg += “Stack: ” + curEx.StackTrace; curEx = curEx.InnerException; } object newEx = Convert.ChangeType(new […]