class A { function a() { say("a"); throw Error("erra"); return 0; } } function b() { say("b"); throw Error("errb"); return 0; } function main[main] (var argv) { try { if (argv[1]) return (new A).a(); else return b(); } catch (e) { say("caught exception"); } }