Tôi đang nhúng IronPython 2.0 vào C#. Trong IronPython, tôi định nghĩa ngoại lệ của riêng tôi với:Bắt ngoại lệ Ironpython trong C#
def foobarException(Exception):
pass
và nâng cao nó ở đâu đó với:
raise foobarException("This is the Exception Message")
Bây giờ trong C#, tôi có:
try
{
callIronPython();
}
catch (Exception e)
{
// How can I determine the name (foobarException) of the Exception
// that is thrown from IronPython?
// With e.Message, I get "This is the Exception Message"
}
Bạn đã thử bằng trình gỡ lỗi chưa? Bạn sẽ thấy loại ngoại lệ hoặc ngoại lệ bên trong, hoặc bất cứ nơi nào ngoại lệ python thực tế được lưu trữ. – OregonGhost
vâng tôi đã thử với một trình gỡ rối, nhưng không thể tìm thấy nó. Vấn đề là nó làm việc với IronPython 1.1. Khi tôi nhớ chính xác trong e.Data ["PythonExceptionInfo"] có thực sự là python exception.message. Và trong e.Message có tên của Ngoại lệ. – foobar