[Ipopt] Ipopt exception handling

Jonathan Hogg jonathan.hogg at stfc.ac.uk
Tue Sep 3 08:52:44 EDT 2013


If I remember correctly there are issues around throwing exceptions 
across shared library boundaries, particularly under Windows?

Jonathan.

On 03/09/13 10:52, Stefan Vigerske wrote:
> Hi,
>
> we'll work on this, probably by adding an option to disable catching 
> of non-Ipopt exceptions.
>
> Stefan
>
> On 09/01/2013 11:34 PM, ax487 wrote:
>> Hello all,
>>
>> first of all, I have been using Ipopt as a library in a C++ project and
>> I must say that I am very pleased with the performance of Ipopt and the
>> C++ interface in general.
>>
>> There is one thing that bothers me though: I subclassed `Ipopt::TNLP'
>> and implemented the functions required to compute the objective value
>> etc. Unfortunately some of the subroutines I am using to compute the
>> required values throw exceptions indicating things like failed 
>> assertions.
>>
>> As I am sure you know it is rather simple to get an idea of what is
>> causing an exception to be thrown using a debugger like gdb: As soon as
>> the exception is thrown and the program is being terminated gdb provides
>> a stack frame that contains the location in the code and the
>> corresponding data that is causing the exception to be thrown.
>>
>> The problem is that Ipopt suppresses these exceptions using a
>> `catch(...)' block after executing the Ipopt::TNLP routines. So instead
>> of a stack trace all I get is a return status
>> `NonIpopt_Exception_Thrown'. This status is pretty useless to as it does
>> not tell me anything about what went wrong exactly.
>>
>> The developers of the boost C++ library recommend to just let exceptions
>> pass through the code without doing handling them at all
>> (http://www.boost.org/community/error_handling.html). I would much
>> appreciate it if you could do the same. I ended up just commenting in
>> the problematic `catch(...)' blocks and recompiling Ipopt which solves
>> the problem for me.
>>
>> ax487
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt
>>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt

-- 
Scanned by iCritical.


More information about the Ipopt mailing list