Bob/tests/test_try_catch_runtime.bob
2025-08-11 18:26:41 -04:00

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");