| 6385 | } |
| 6386 | |
| 6387 | void handleException(CppiaCtx* ctx, Dynamic caught) { |
| 6388 | //Class cls = caught.mPtr ? caught->__GetClass() : 0; |
| 6389 | for(int i=0;i<catchCount;i++) |
| 6390 | { |
| 6391 | Catch &c = catches[i]; |
| 6392 | if ( c.type->isClassOf(caught) ) |
| 6393 | { |
| 6394 | ctx->exception = nullptr; |
| 6395 | HX_STACK_BEGIN_CATCH |
| 6396 | c.var.set(ctx,caught); |
| 6397 | c.body->runVoid(ctx); |
| 6398 | return; |
| 6399 | } |
| 6400 | } |
| 6401 | HX_STACK_DO_THROW(caught); |
| 6402 | } |
| 6403 | |
| 6404 | // TODO - return types... |
| 6405 | void runVoid(CppiaCtx *ctx) HXCPP_OVERRIDE |