在Pony中区分不同类型的错误?

时间:2017-03-16 21:55:26

标签: ponylang

Pony有一个异常值,没有参数化。

不幸的是,我经常遇到想要抛出不同异常的代码,我需要知道它们是什么才能正确处理它们 - 例如,在停止程序时,它很重要,这对于给用户正确的错误消息!

那么在Pony中这样做的惯用方法是什么?

1 个答案:

答案 0 :(得分:4)

目前惯用的方法是不使用错误,而是使用正常返回类型的联合类型和错误原因。例如,如果您的函数返回ReturnType并且可能会出错Error1Error2,那么您的函数签名可以是

fun foo(): (ReturnType | Error1 | Error2)

然后调用者函数必须match才能看到发生了什么。

如果你想要一些真实的例子,标准库的files包广泛使用这个习惯用法。

此外,为了完整性,目前正在讨论添加类型错误的RFC