处理ML中的异常
大家好,我试图理解ML中的异常是如何工作的,但是我有一个奇怪的错误,我无法弄清楚出了什么问题:
exception Factorial
fun checked_factorial n =
if n < 0 then
raise Factorial
else n;
fun factorial_driver () =
checked_factorial(~4)
handle
Factorial => print "Out of range.";
可能有什么不对?提前感谢您的帮助。
没有找到相关结果
已邀请:
1 个回复
呢率篓舍烫
具有一致的类型。非特殊情况返回
,因此ML推断函数为
类型,但例外情况(即
表达式)返回
,而不是
。 通常,您基本上需要在所有情况下返回相同类型的值。