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

如何在Scala中定义错误类型?

发布时间:2020-12-16 10:07:41 所属栏目:安全 来源:网络整理
导读:假设我为我的 Scala应用程序定义了错误.我希望它们是错误,警告和确定.我希望错误和警告包含一个人类可读的文本消息. 我还想分配数字代码(0 – 表示Ok,1 – 表示警告,2表示错误)以查找错误列表中最严重的错误. 所以,我定义这个错误的东西如下: object MyErro
假设我为我的 Scala应用程序定义了错误.我希望它们是错误,警告和确定.我希望错误和警告包含一个人类可读的文本消息.

我还想分配数字代码(0 – 表示Ok,1 – 表示警告,2表示错误)以查找错误列表中最严重的错误.

所以,我定义这个错误的东西如下:

object MyErrors {  
  abstract sealed case class MyError(code: Int,maybeMessage: Option[String])
  object Ok extends MyError(0,None)
  final case class Warning(message) extends MyError(1,Some(message)) 
  final case class Error(message) extends MyError(2,Some(message))
}

是否有意义?你会如何实现它?

解决方法

根据我的几个问题:

>您无法扩展案例类.考虑密封特征或简单的抽象类
>为什么所有这些都包含在MyErrors对象中?
>你真的需要Int领域吗?您可以使用模式匹配进行过滤.
>将Ok作为MyError的一个实例看起来在语义上是错误的.我宁愿使用Status
>选择的问题,但我会为ErroneousStatus定义一个子项目
>在您进入设计之前,您是否考虑过EitherValidation

(编辑:李大同)

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

    推荐文章
      热点阅读