假设我为我的
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定义一个子项目
>在您进入设计之前,您是否考虑过Either
或Validation
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。