Hi,

Am 20.02.14 18:27, schrieb Mathias Bauer:

I tested, that a simple @try/@catch works (an exception thrown in a
function called from the @try block is caught successfully and the
program exits normally). But throwing another exception in the function
that caught the exception freezes the program again. It doesn't matter
if the second exception is thrown inside the @catch block or outside of it.

More exactly:

EH works if an exception is thrown and caught in a function and then another exception is thrown and caught in that same function.

EH works if an exception is thrown in a function and caught in another function above on the call stack.

The program does not continue if an exception is thrown and caught in a function and then another exception is thrown in that same function and shall be caught in a function above on the call stack (the typical "rethrow" scenario).

From debugging the code I could see that in this case the function "internal_objc_personality" in eh_personality.c only finds a handler that is a cleanup, and so the function is called again and again, always with the same result.

Regards,
Mathias


_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to