加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala:是唯一的选择吗?

发布时间:2020-12-16 10:08:21 所属栏目:安全 来源:网络整理
导读:对于潜在的运行时故障,如数据库查询,似乎必须使用某种形式的Either [String,Option [T]]才能准确捕获以下结果: 一些(记录发现) 无(未找到记录) SQL异常 选项根本没有足够的选择. 我想我需要潜入scalaz,但是现在它是直的,除非我在上面遗漏了什么. 使用我的DA
对于潜在的运行时故障,如数据库查询,似乎必须使用某种形式的Either [String,Option [T]]才能准确捕获以下结果:

>一些(记录发现)
>无(未找到记录)
> SQL异常

选项根本没有足够的选择.

我想我需要潜入scalaz,但是现在它是直的,除非我在上面遗漏了什么.

使用我的DAO实现将自己装入一个角落,仅使用Either进行写入操作,但现在看到一些Either写入依赖于Option读取(例如检查新用户注册时是否存在电子邮件),这是一个非常糟糕的赌博.

在我全力以赴之前,是否有人有替代解决方案来处理成功/失败/异常的运行时三连胜?

解决方法

对于找到的案例记录使用Option [T]并且没有找到记录,并在SQLException的情况下抛出异常.

只需将异常包装在您自己的异常类型中,例如PersistenceException,这样您就不会有漏洞抽象.

我们这样做是因为我们不能也不想从意外的数据库异常中恢复.异常被捕获在顶层,我们的Web服务在这种情况下返回500内部服务器错误.

在我们想要恢复的情况下,我们使用来自scalaz的验证,这很像Lift’s Box.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读