【问题标题】:Object Reference Error - Show class name with error?对象引用错误 - 显示错误的类名?
【发布时间】:2011-01-24 11:26:22
【问题描述】:

当我收到 Object Ref 错误时,有时很难找出导致错误的变量(当您无法调试时)。有没有办法让这个错误抛出未分配的类名?

所以:我想要意外为空的变量类型的名称。

提前致谢。

【问题讨论】:

  • 类名究竟是什么?听起来您想要意外为空的变量类型的名称。是这样吗?
  • 是的,就是这样。

标签: asp.net error-handling


【解决方案1】:

我不认为你可以获取类名,我得到的关闭是获取类和方法名,然后是堆栈跟踪:

try
    {

    }
    catch ( Exception ex )
    {
        xxx.API.ErrorHandler.Handler.HandleError( ex, System.Reflection.MethodBase.GetCurrentMethod().Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName );
    }

【讨论】:

  • 堆栈跟踪已经提供了类和方法名不是吗?
  • 是的,但是我的处理程序将类和方法名称作为参数,因为这更容易通过反射而不是尝试读取堆栈跟踪来传递
【解决方案2】:

好吧,它只是堆栈跟踪中的信息,这将是找出错误起源的第一步。此外,您应该确保检查完整的堆栈跟踪(也包括所有内部异常)。这将为您提供具有完整命名空间的方法名称。所以这应该是一个很好的步骤来查看错误在哪里,除非标准编码真的很糟糕。

【讨论】:

  • 如果一个方法使用了很多不同的类,那么有多个地方可能会引发这样的错误。这是我有时会遇到的问题。另一个例子是当你在 ascx 页面上缺少一个控件并在后面的代码中引用它时,追踪它可能会很痛苦。
猜你喜欢
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多