【发布时间】:2016-05-18 15:25:35
【问题描述】:
假设我有一个对象A,它可能有一个OptionB,它还可能引用另一个可选对象C(嵌套的选项)
我见过几种访问C 的方法,例如理解、模式匹配或flatMap,它们看起来都不错。但是如果我必须返回某种错误消息或在缺少B 或C 或提供类似cannot execute because B is missing 或C not set 的消息时抛出异常怎么办?我只能退回到(嘲笑):
if(a.b.isDefined)
{
if(a.b.c.isDefined)
{
//do work
}
else throw new Exception1 //or call something other
}
else throw new OtherException //or do something other
我怎样才能以更实用或更流畅的方式处理?
【问题讨论】:
-
您是否考虑过使用
Either[A, B]作为内部类型? -
其实没有。我更多地使用 Java 8,所以我有点受 Optional 的影响。您的具体意思是什么?
标签: scala