14 lines · 360 B · Standard ML
RawDownload
exception E;fun f() = let exception E in raise E end;f() handle E => "WRONG: Top-level E is caught"         | _ => "OK";val elist = [E, Size]; exception E' = E;(raise E) handle E' => "OK";(raise E') handle E => "OK"; exception G of int;(raise G 20) handle G 10 => "WRONG: G 10"                  | E    => "WRONG: E"                  | G 20 => "OK";