我有一组用户、组以及用户和组之间的映射。我有各种操作这些集合的函数,但是不能为不存在的用户添加用户<->组映射,也不能删除仍然有用户作为成员的组等。
所以基本上我希望这些函数抛出必须由调用者明确处理的“异常”。
我首先想到的是返回这样的东西:
data Return r e = Success r | Exception e
如果调用者未能与Exception
.
这是最好的方法吗,是否有一个预先打包的解决方案可以做到这一点?注意我需要在纯代码中抛出和捕获“异常”,而不是 IO Monad。