我正在使用以下代码从我的 MVC 模型状态中获取异常:
IEnumerable<string> exceptions = ModelState (x => x.Value.Errors
.Where(error => (error != null) &&
(error.Exception != null) &&
(error.Exception.Message != null))
.Select(error => error.Exception.Message));
对于 try-catch 块异常,我如何编写一种方法来获取异常 e 并使其如此我的异常和内部异常消息也像我上面所做的那样放入 IEnumerable 中?
我的问题是我不确定如何处理可能存在多级异常的事实。
不确定这是否有帮助,但这是我之前用来将异常放入字符串的代码:
public static string GetFormattedErrorMessage(this Exception e)
{
var exError = "";
if ( 1 == 1) {
if (e == null)
{
throw new ArgumentNullException("e");
}
exError = e.Message;
if (e.InnerException != null)
{
exError += "<br>" + e.InnerException.Message;
exError += "<br>" + e.StackTrace;
if (e.InnerException.InnerException != null)
{
exError += "<br>" + e.InnerException.InnerException.Message;
}
}
} else {
exError = "System error";
}
return exError;
}