无法使用参数处理SML异常

时间:2014-12-05 03:11:51

标签: exception exception-handling sml smlnj raise

假设我有一个例外定义如下:

exception MyException of string

我在函数中引发它(此函数返回字符串),如下所示:

fun foo ... = raise DomenaInterpretacije ("Error ...")   
  | foo ... ...

然后我以某种方式调用该功能,产生异常:

fun testExc () =
     (foo ...)
     handle MyException msg => msg

但这些收益率:

Error: non-constructor applied to argument in pattern: MyException 
Error: unbound variable or constructor: msg

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

显然,你做错了什么与你粘贴的代码没什么关系。

下面提供了代码的工作示例:

exception MyException of string

fun foo () = raise MyException "I wonder what happened."

fun testFoo () =
    foo ()
    handle MyException msg => msg

答案 1 :(得分:0)

异常实际上是在模块中定义的,所以我不得不像MyModule.MyException一样调用它。