Fixed try/catch to run finally again. exit() in catch if you want to stop execution. (0.37.62)
This commit is contained in:
parent
6648fa1e27
commit
869d68b992
4 changed files with 43 additions and 5 deletions
|
|
@ -40,8 +40,8 @@ case OP_DIV: {
|
|||
double da = (a.type == VAL_FLOAT) ? a.d : (double)a.i;
|
||||
double db = (b.type == VAL_FLOAT) ? b.d : (double)b.i;
|
||||
if (db == 0.0) {
|
||||
fprintf(stderr, "Runtime error: division by zero\n");
|
||||
exit(1);
|
||||
vm_raise_error(vm, "division by zero");
|
||||
break;
|
||||
}
|
||||
Value res = make_float(da / db);
|
||||
free_value(a);
|
||||
|
|
@ -49,8 +49,8 @@ case OP_DIV: {
|
|||
push_value(vm, res);
|
||||
} else {
|
||||
if (b.i == 0) {
|
||||
fprintf(stderr, "Runtime error: division by zero\n");
|
||||
exit(1);
|
||||
vm_raise_error(vm, "division by zero");
|
||||
break;
|
||||
}
|
||||
Value res = make_int(a.i / b.i);
|
||||
free_value(a);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue