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

_______________________________________________
help-smalltalk mailing list
help-smalltalk@gnu.org
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to