我想使用递归调用获取最后一条内部 exception消息
。这里的要求是使用递归函数。我正在尝试这样做,但是我认为这没有什么问题。这是我的代码
public static string GetFirstOccuredExceptionMessage(Exception ex)
{
string message ="";
if (ex != null)
{
if (ex.InnerException == null)
{
message = "";
}
else
{
message = GetFirstOccuredExceptionMessage(ex.InnerException);
}
}
return message;
}
Run Code Online (Sandbox Code Playgroud)
当我期望如果返回某些消息时,我会不断得到空字符串ex != null
你总是返回一个空字符串 -请注abscence的ex.Message。像这样:
public static string GetFirstOccuredExceptionMessage(Exception ex) {
if (null == ex) // no exception -
return ""; // we return an empty string
else if (null == ex.InnerException) // exception with no inner one -
return ex.Message; // time to return the message
else // exception which has deeper one -
return GetFirstOccuredExceptionMessage(ex.InnerException); // level down
}
Run Code Online (Sandbox Code Playgroud)
或转向运算符
public static string GetFirstOccuredExceptionMessage(Exception ex) =>
ex == null ? ""
: ex.InnerException == null ? ex.Message
: GetFirstOccuredExceptionMessage(ex.InnerException);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |