Обработка и печать исключений с помощью SML

У меня есть код, который выглядит примерно так:

ignore
  (f ())
  handle
    AssertionError msg         => (print ("assertion error: " ^ msg ^ "\n"); ())
    | _ (* other exceptions *) => (print ("exception raised\n"); ())

Но мне нужно напечатать общее сообщение об исключении (с exnMessage?).

Как перехватить исключение _, чтобы получить и распечатать его сообщение?


person Arĥimedeς ℳontegasppα ℭacilhας    schedule 08.10.2018    source источник


Ответы (1)


Сопоставьте исключение с именем вместо _ и используйте exnMessage:

- (hd ([]: string list)) handle e => exnMessage e;
val it = "Empty" : string
person molbdnilo    schedule 08.10.2018
comment
Вау! Клянусь, я думал, что уже пробовал это. ???? Работает, спасибо! - person Arĥimedeς ℳontegasppα ℭacilhας; 08.10.2018