【问题标题】:Sublime Text 3 smlnj REPL not printing exceptionsSublime Text 3 smlnj REPL 不打印异常
【发布时间】:2019-03-15 14:58:18
【问题描述】:
当代码中出现异常时,我不会收到任何消息或任何打印内容。比如下面的代码:
fun test n =
if n = 1
then raise Fail ("hey")
else 2
val t = test 1
当我输入时
- use "test.sml";
输出只是
[opening test.sml]
val it = () : unit
我希望它打印引发异常和消息(“嘿”)
关于如何解决此问题的任何想法
我正在使用 smlnj 110.82
【问题讨论】:
标签:
exception
sublimetext3
sml
read-eval-print-loop
smlnj
【解决方案1】:
因为你没有处理你的异常。
你应该这样做:
fun test n =
if n = 1
then raise Fail ("hey")
else 2
val t = test 1 handle Fail msg => 0;
[opening practice.sml]
val test = fn : int -> int
val t = 0 : int
val it = () : unit
如果您希望在屏幕上看到 Fail msg,请使用副作用:
fun test n =
if n = 1
then raise Fail ("hey")
else 2
val t = test 1 handle Fail msg => (print (msg ^ "\n"); 0)
[opening practice.sml]
hey
val test = fn : int -> int
val t = 0 : int
val it = () : unit