package Ġorg . part i ql . lang . eval . io Ċ Ċ import Ġcom . amazon . ion . system . Ion System Builder Ċ import Ġorg . junit . Test Ċ import Ġorg . part i ql . lang . Compiler Pipeline Ċ import Ġorg . part i ql . lang . ast . Source Location Meta Ċ import Ġorg . part i ql . lang . eval .* Ċ import Ġjava . io . IOException Ċ import Ġjava . lang . IllegalStateException Ċ import Ġjava . lang . NullPointerException Ċ import Ġjava . util . concurrent . ThreadPoolExecutor Ċ import Ġkotlin . test . assertTrue Ċ import Ġkotlin . test . fail Ċ Ċ class ĠAlways Throws Func (): ĠExpr Function Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" al way sth rows " ĊĊĠĠĠ Ġoverride Ġfun Ġcall ( env : ĠEnvironment , Ġargs : ĠList < Expr Value >): ĠExpr Value Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCustom ExceptionHandler Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġverify Custom ExceptionHandler () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcustom Handler Was Inv oked Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġion Ġ= ĠIon System Builder . standard (). build () ĊĠĠĠĠĠĠĠ Ġval Ġcompiler Pipeline Ġ= ĠCompiler Pipeline . build ( ion ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Function ( Always Throws Func ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompile Options ( Compile Options . build Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġth unk Options ( Thunk Options . build Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Exception Ġ{ Ġthrowable , Ġsource Location Meta Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Handler Was Inv oked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġexpression Ġ= Ġcompiler Pipeline . compile (" al way sth rows () ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression . eval ( Evaluation Session . standard ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" IllegalStateException Ġwas Ġnot Ġthrown .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( custom Handler Was Inv oked , Ġ" Custom Ġhandler Ġmust Ġbe Ġinvoked ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġverify Custom ExceptionHandler For Java Builder () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcustom Handler Was Inv oked Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġion Ġ= ĠIon System Builder . standard (). build () ĊĠĠĠĠĠĠĠ Ġval Ġcompiler Pipeline Ġ= ĠCompiler Pipeline . builder ( ion ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addFunction ( Always Throws Func ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. compile Options ( Compile Options . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. thunk Options ( Thunk Options . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. handle Exception Ġ{ Ġthrowable , Ġsource Location Meta Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Handler Was Inv oked Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġexpression Ġ= Ġcompiler Pipeline . compile (" al way sth rows () ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpression . eval ( Evaluation Session . standard ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" IllegalStateException Ġwas Ġnot Ġthrown .") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( custom Handler Was Inv oked , Ġ" Custom Ġhandler Ġmust Ġbe Ġinvoked ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }