sml - SML 问题:我可以在函数中将异常作为参数传递吗?
问题描述
我可以在 sml 函数中将异常作为参数传递吗?
如果是这样,它会是这样的吗?
foo(exc: exception) =
...
解决方案
是的,您可以,但类型是exn
,而不是exception
:
- exception E;
exception E
- E;
val it = E(-) : exn
- exception Q;
exception Q
- fun f x e = if x > 0 then x else raise e;
val f = fn : int -> exn -> int
- f 1 E;
val it = 1 : int
- (f 0 E) handle E => 23 | Q => 49;
val it = 23 : int
- (f 0 Q) handle E => 23 | Q => 49;
val it = 49 : int
但它是否对任何事情有用是另一回事。
推荐阅读
- swagger-ui - 如何在 Swagger UI 中使用“-k”参数生成 curl 命令?
- swift - 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“UICollectionView 必须使用非零布局参数初始化”
- java - 在 Java 中,如何从单个 .dat 文件中读取两种数据类型,char 和 int?
- php - yii2 ajax 验证不显示错误
- visual-studio-code - 如何在 VSCode 设置中设置不同的默认格式化程序?
- python - 如何减去两个矩形?
- javascript - 无法删除并在 router.delete 中找不到 404 错误
- matlab - Matlab:ODE45方程的参数拟合 - 只有xdata的初始值
- python - GRU(门控循环单元)不适用于 GPU(TensorFlow)
- javascript - 带有反引号的 JavaScript 模板文字不起作用