35 lines
865 B
Plaintext
35 lines
865 B
Plaintext
print("\n--- Test: try/catch runtime errors ---");
|
|
|
|
// Division by zero
|
|
var caught = "";
|
|
try { var x = 10 / 0; }
|
|
catch (e) { caught = e.type + ":" + e.message; }
|
|
assert(type(caught) == "string", "caught is string");
|
|
|
|
// Undefined variable
|
|
var c2 = "";
|
|
try { var y = missingVar + 1; }
|
|
catch (e) { c2 = e.type; }
|
|
assert(c2 == "RuntimeError", "undefined variable caught");
|
|
|
|
// Array out-of-bounds
|
|
var c3 = "";
|
|
try { var a = [1,2]; var z = a[5]; }
|
|
catch (e) { c3 = e.type; }
|
|
assert(c3 == "RuntimeError", "array oob caught");
|
|
|
|
// Dict key type error
|
|
var c4 = "";
|
|
try { var d = {"x":1}; var z = d[1]; }
|
|
catch (e) { c4 = e.type; }
|
|
assert(c4 == "RuntimeError", "dict key type caught");
|
|
|
|
// Non-array/dict index
|
|
var c5 = "";
|
|
try { var z = 42[0]; }
|
|
catch (e) { c5 = e.type; }
|
|
assert(c5 == "RuntimeError", "non-array index caught");
|
|
|
|
print("try/catch runtime errors: PASS");
|
|
|