Scala:是唯一的选择吗?
发布时间:2020-12-16 10:08:21 所属栏目:安全 来源:网络整理
导读:对于潜在的运行时故障,如数据库查询,似乎必须使用某种形式的Either [String,Option [T]]才能准确捕获以下结果: 一些(记录发现) 无(未找到记录) SQL异常 选项根本没有足够的选择. 我想我需要潜入scalaz,但是现在它是直的,除非我在上面遗漏了什么. 使用我的DA
对于潜在的运行时故障,如数据库查询,似乎必须使用某种形式的Either [String,Option [T]]才能准确捕获以下结果:
>一些(记录发现) 选项根本没有足够的选择. 我想我需要潜入scalaz,但是现在它是直的,除非我在上面遗漏了什么. 使用我的DAO实现将自己装入一个角落,仅使用Either进行写入操作,但现在看到一些Either写入依赖于Option读取(例如检查新用户注册时是否存在电子邮件),这是一个非常糟糕的赌博. 在我全力以赴之前,是否有人有替代解决方案来处理成功/失败/异常的运行时三连胜? 解决方法
对于找到的案例记录使用Option [T]并且没有找到记录,并在SQLException的情况下抛出异常.
只需将异常包装在您自己的异常类型中,例如PersistenceException,这样您就不会有漏洞抽象. 我们这样做是因为我们不能也不想从意外的数据库异常中恢复.异常被捕获在顶层,我们的Web服务在这种情况下返回500内部服务器错误. 在我们想要恢复的情况下,我们使用来自scalaz的验证,这很像Lift’s Box. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |