Pony 有一个没有参数化的异常值。
不幸的是,我经常有想要抛出不同类型异常的代码,我需要知道它们是什么才能正确处理它们——例如,在停止程序时,给用户正确的错误消息很重要!
那么在 Pony 中这样做的惯用方式是什么?
Pony 有一个没有参数化的异常值。
不幸的是,我经常有想要抛出不同类型异常的代码,我需要知道它们是什么才能正确处理它们——例如,在停止程序时,给用户正确的错误消息很重要!
那么在 Pony 中这样做的惯用方式是什么?
目前惯用的方法是不使用错误,而是使用正常返回类型的联合类型和错误原因。例如,如果您有一个返回的函数,ReturnType
并且可以使用Error1
or出错Error2
,那么您的函数签名可以是
fun foo(): (ReturnType | Error1 | Error2)
然后调用者函数必须match
在联合上查看发生了什么。
如果你想要一些真实世界的例子,files
标准库的包会广泛使用这个习语。
此外,为了完整起见,目前正在讨论关于添加类型错误的RFC 。