|
From: | Paolo Bonzini |
Subject: | Re: [Help-smalltalk] Correct way to throw exceptions/errors from C to ST |
Date: | Sun, 05 Apr 2015 08:06:49 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
On 04/04/2015 02:50, Roland Plüss wrote: > Another something that I could not really figure out using the > documentations. Let's say you have a CCallOut from ST to C. Inside > this C function something goes wrong, for example an invalid > argument passed. How do you properly raise an exception back to > Smalltalk? I tried doing something like this: > > gst_eval_code( "SystemExceptions.InvalidArgument new signal" ); > > But this causes the VM to call abort since an exception happened > outside the bytecode. I assume you need to be more clever in this > case. So what is the correct way to throw these kinds of exceptions > from inside a C function? You return a C-style error and have a Smalltalk wrapper convert it to a Smalltalk exception. Or you do argument checking in Smalltalk and the rest in C. Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |