IronPython:调试空引用异常

4
我之前在遇到空指针异常时曾提出this问题。那时,事实上我看到的是IronPython中的一个错误。
现在我在使用第三方库(用C#编写)时再次遇到了这个错误。该库是DotSpatial库,结果我无意中在我的IronPython代码中创建了一种条件,导致了DotSpatial方法的副作用破坏。供参考的是调用和错误消息:
>>> myScheme.CreateCategories(myLayer.DataSet.DataTable) 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
SystemError: Object reference not set to an instance of an object.

这个问题特别难以调试,因为问题不在我传递给其方法的myScheme对象或DataTable上,而是在我错误设置的myScheme的另一个属性上,我甚至不知道CreateCategories访问了它。为了找出问题,我不得不阅读DotSpatial的源代码。虽然我不太费劲,但我想知道是否有更简单的方法来调试此类错误?或者因为我正在使用IronPython和第三方库,所以只能面对糟糕的错误消息?
1个回答

3

有两个命令行开关可以让IronPython显示更多的异常信息:-X:ExceptionDetail-X:ShowClrExceptions。其中一个或两个开关应该会给出完整的堆栈跟踪,以确定NullReferenceException发生的位置。


太棒了。我刚刚花了一个小时尝试弄清楚如何做到这一点。感谢。 - lesscode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接