Monad和Exceptional Cases

时间:2013-12-04 12:33:53

标签: c# exception-handling functional-programming monads either

如果我有一个返回Either的函数,例如GetUserFromDb(int id)并且数据库处于脱机状态,我应该捕获函数中的错误并将其包装在失败/ Left情况下,还是应该让它作为异常冒出来因为我无能为力,这确实是一种特殊情况。

欢迎评论/建议。

干杯,

布莱尔

1 个答案:

答案 0 :(得分:0)

在左边的情况下包裹错误。然后你需要明确处理它。您可以将左侧“冒出”到您想要处理错误的位置,例如使用错误消息或日志条目。我想如果数据库处于脱机状态但你没有让你的应用程序崩溃,而是正常关闭它并告知某些用户有关错误的信息。