Ранее я задавал этот вопрос, когда видел исключение нулевого указателя. В этом случае оказалось, что на самом деле я видел ошибку в 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 и сторонней библиотекой?