我有停留在如何将错误处理在以下情况下进行建模我的脑海:斯卡拉误差建模
我有CommonErrors
这是可能出现的为我所有的方法
我也有具体的错误错误,如:Error1
,Error2
,Error3
所以我们必须在最后
DoAErrors
= CommonErrors
+ Error1
+ Error2
DoBErrors
= CommonErrors
+ Error2
+ Error3
和方法签名:
doA() Either[DoAErrors, DoAResult]
doB() Either[DoBErrors, DoBResult]
是好的我想用密封特性等DoAErrors
我的媒体库的客户可以安全地模式匹配和DoBErrors
并捕获常见的+具体错误。到目前为止,我的尝试:
sealed trait CommonErrors
… extends CommonErrors
… extends CommonErrors
sealed trait DoAErrors extends CommonErrors
Error1 extends DoAErrors
sealed trait DoBErrors extends CommonErrors
Error2 extends DoAErrors with DoBErrors
Error3 extends DoBErrors
的问题来自于一个事实,即doA()
和doB()
内部调用返回一个CommonError
,它是不可能在DoA
也不DoB
错误改装CommonErrors
的方法。如何模拟这种情况?
感谢您的帮助!
嗯其实很有道理,我会尽量让你知道。本来我只有CommonErrors,所以当我添加ErrorA和B时,我试图用现有的错误来组合。非常感谢 ! –
它似乎工作正常!谢谢 ! –