![]() |
1
4
我对一般问题的看法是,这取决于钥匙从哪里来。
如果它们是由某个用户或不受信任的系统输入的,那么我使用
另一方面,如果密钥来自一个已知的系统(这包括嵌入在最初来自系统的链接中的密钥),并且假定它们是有效的和存在的,我会将其作为运行时异常,由外部级别的catch all处理。对于链接示例,如果有人出于某种原因手动更改url中的键,则应将其视为未定义的行为,并应使用IMO中的异常。
另一种思考方法是,当情况发生时,你将如何处理。如果你在使用
关于与Java的集成,
|
![]() |
2
2
在Java中,可以调用Option的
|
![]() |
3
0
在某些情况下(比如你的例子),一个选项是好的,“一元”行为(map,flatMap,filter…)非常方便,但是在其他情况下,你需要更多关于问题原因的信息,可以更好地用一个例外来表达。现在您可能希望错误处理尽可能“统一”,所以我建议使用 或者 ,这将为您提供类似于Option的行为和类似于异常的表达式。 在Java中,您只需要一个helper函数来“解包”一个或一个。如果它找到一个右(值),它将返回该值;如果它找到一个左(异常),它将重新抛出该值。在这之后,您将恢复正常的Java行为。 |
![]() |
davidzxc574 · 将字符串缩放为字符 2 年前 |
![]() |
yic_l · 什么是“!”在这个函数中是什么意思? 2 年前 |
![]() |
Jelly · Scala:用于理解递归未来 2 年前 |
![]() |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
![]() |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 2 年前 |
![]() |
B. Bal · 在Scala中重用类成员 2 年前 |