19 lines
530 B
Plaintext
19 lines
530 B
Plaintext
var intDiv = Fn.new { |a, b|
|
|
if (!(a is Num && a.isInteger) || !(b is Num && b.isInteger)) Fiber.abort("Invalid argument(s).")
|
|
if (b == 0) Fiber.abort("Division by zero error.")
|
|
if (a == 0) a = a.badMethod()
|
|
return (a/b).truncate
|
|
}
|
|
|
|
var a = [ [6, 2], [6, 0], [10, 5], [true, false], [0, 2] ]
|
|
for (e in a) {
|
|
var d
|
|
var f = Fiber.new { d = intDiv.call(e[0], e[1]) }
|
|
f.try()
|
|
if (f.error) {
|
|
System.print("Caught %(f.error)")
|
|
} else {
|
|
System.print("%(e[0]) / %(e[1]) = %(d)")
|
|
}
|
|
}
|