[Ironpython-users] PINVOKE exception from loaded .NET assembly

Markus Schaber m.schaber at codesys.com
Tue Nov 17 05:52:00 EST 2015


Hi,

it seems, in your case, it’s not an aggregate exception, so you just need to access the InnerException property (without an „s“ at the end) of your System.Exception

Best regards

Markus Schaber

CODESYS® a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions
________________________________
3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.schaber at codesys.com<mailto:m.schaber at codesys.com> | Web: codesys.com<http://www.codesys.com> | CODESYS store: store.codesys.com<http://store.codesys.com>
CODESYS forum: forum.codesys.com<http://forum.codesys.com>

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915
________________________________
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received
this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure
or distribution of the material in this e-mail is strictly forbidden.
From: Djordje Spasic [mailto:issworld2000 at yahoo.com]
Sent: Tuesday, November 17, 2015 11:46 AM
To: Markus Schaber; ironpython-users at python.org
Subject: Re: [Ironpython-users] PINVOKE exception from loaded .NET assembly

Thank you.

I am not a programmer myself.
How would either InnerException or AggregateException be used in this case?
I tried:

try:
 gdalc.Gdal.AllRegister()
except System.AggregateException as e:
    print "exception: ", e.InnerExceptions


But that didn't seem to be correct.

________________________________
From: Markus Schaber <m.schaber at codesys.com<mailto:m.schaber at codesys.com>>
To: Djordje Spasic <issworld2000 at yahoo.com<mailto:issworld2000 at yahoo.com>>; "ironpython-users at python.org<mailto:ironpython-users at python.org>" <ironpython-users at python.org<mailto:ironpython-users at python.org>>
Sent: Tuesday, November 17, 2015 11:31 AM
Subject: RE: [Ironpython-users] PINVOKE exception from loaded .NET assembly

Hi,

The inner exception (if present) can be accessed via the InnerException property of the “outer” exception:

https://msdn.microsoft.com/de-de/library/system.exception.innerexception%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

(This is a .NET feature, not an IronPython specific one.)

There’s also an AggregateException which is used in some cases:
https://msdn.microsoft.com/de-de/library/system.aggregateexception%28v=vs.110%29.aspx


Grüße,
Markus


From: Djordje Spasic [mailto:issworld2000 at yahoo.com]
Sent: Tuesday, November 17, 2015 11:16 AM
To: Markus Schaber; ironpython-users at python.org<mailto:ironpython-users at python.org>
Subject: Re: [Ironpython-users] PINVOKE exception from loaded .NET assembly

Hi Markus,

Thank you for the reply.
How can I access the inner exception in ironpython?

I tried this:


import clr

clr.AddReferenceToFileAndPath("c:/gdal/gdal2bb/gdal_csharp.dll")



import OSGeo.GDAL as gdalc



try:
    gdalc.Gdal.AllRegister()

except System.Exception as e:
    print e.Message

But it raises the same message:

The type initializer for 'OSGeo.GDAL.GdalPINVOKE' threw an exception.

So this is not an inner exception?


Regards,
Djordje

________________________________
From: Markus Schaber <m.schaber at codesys.com<mailto:m.schaber at codesys.com>>
To: Djordje Spasic <issworld2000 at yahoo.com<mailto:issworld2000 at yahoo.com>>
Sent: Tuesday, November 17, 2015 7:57 AM
Subject: RE: [Ironpython-users] PINVOKE exception from loaded .NET assembly

Hello,

From: Djordje



> I am trying call a method from loaded .NET assembly in python, but for some reason, I am getting a PINVOKE exception. Is there some way to print what is the reason for that exception?


Maybe you could try to access the inner exception?

Best regards

Markus Schaber

CODESYS® a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions
________________________________________
3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.schaber at codesys.com<mailto:m.schaber at codesys.com> | Web: codesys.com | CODESYS store: store.codesys.com
CODESYS forum: forum.codesys.com

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915
________________________________________
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received
this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorised copying, disclosure
or distribution of the material in this e-mail is strictly forbidden.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20151117/84ad22ec/attachment.html>


More information about the Ironpython-users mailing list