我正在開發一個 .NET Core 6 應用程式。
在代碼的一部分中,我有這個:
catch (Exception ex)
{
_logger.LogError(ex.GetMessage());
string error = "Por favor, contáctese con soporte técnico.";
if (ex.InnerException != null)
error = string.Concat("\n\n", ex.InnerException.Message);
return Json($"ERROR: Existió un error al iniciar sesión. {error}");
}
當我將滑鼠移過時ex,ex.GetMessage()會出現以下警告:

這意味著“這里的 ex 不是 NULL”。那是什么?我該如何處理?
uj5u.com熱心網友回復:
CA2254 表示日志訊息不應因呼叫而異,但引數應如此。
因此ex.Message,您無需記錄日志,而是記錄以下內容:
_logger.LogError("Something went wrong while fooing the bar: {message}", ex.Message);
但實際上不要,因為您不僅要記錄例外訊息,而且要記錄整個事情,具體取決于您的日志記錄配置;讓日志框架處理例外日志。
所以:
_logger.LogError("Something went wrong while fooing the bar", ex);
uj5u.com熱心網友回復:
這是 Rosyln 的Flowstate或NullableFlowState. 該訊息純粹是資訊性的(由于 CA2254 訊息,它看起來有點像錯誤/警告 - 如果不是因為它,ex可能甚至不會在它下面有那些點)。
當啟用可空特性時,編譯器將在整個方法中跟蹤運算式的流狀態,而不管變數被宣告為什么。
您可以在此處閱讀有關此的更多資訊。
我認為這個的實際來源可以在這里找到。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/524947.html
