Pony有一个未参数化的异常值。
不幸的是,我经常有想要抛出不同类型异常的代码,我需要知道它们是什么以便正确地处理它们-例如,当停止程序时,给用户正确的错误消息是很重要的!
那么在Pony中做这件事的惯用方式是什么呢?
发布于 2017-03-17 09:25:36
目前惯用的方式是不使用错误,而是使用正常返回类型和错误原因的联合类型。例如,如果您有一个返回ReturnType的函数,并且在使用Error1或Error2时可能出错,则函数签名可以是
fun foo(): (ReturnType | Error1 | Error2)然后,调用者函数必须在联合上执行match,才能查看发生了什么。
如果你想要一些真实的例子,标准库的files包广泛地使用了这个习惯用法。
此外,为了完整性,目前正在讨论关于添加类型化错误的RFC。
https://stackoverflow.com/questions/42845484
复制相似问题