当代码中出现异常时,我不会打印任何消息或任何内容。例如下面的代码:
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。
发布于 2018-10-11 08:28:32
因为你没有处理你的异常。
你应该这样做:
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如果您希望在屏幕上看到失败消息,只需使用副作用:
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 = () : unithttps://stackoverflow.com/questions/52744606
复制相似问题