【发布时间】:2021-02-04 00:20:25
【问题描述】:
我有一个 ASP.NET 应用程序。一切都很好,但最近我得到了自己为空的异常:
try
{
// do something
}
catch (Exception ex)
{
Logger.Log("Error while tried to do something. Error: " + ex.Message);
}
有时ex 本身就是null!
有什么想法吗?
【问题讨论】:
-
可能不是异常为空,而是编译器可能正在优化其余部分代码,导致您的异常出现在其他地方。您可以粘贴任何实际代码吗?
-
另外,您是否已将问题范围缩小到当您收到 null ex(或 null ex.Message)时发生的一致情况?
-
ex是null。我放了一个Break Point,我确定它是ex。 -
这完全不可能发生,除非你事先写
ex = null;。 -
你把断点放在哪里了?如果在 'catch' 行中,然后将鼠标指针悬停,您实际上可能会得到空值。您需要在 catch 语句中运行代码以将异常引用到 ex。