![]() |
1
7
不同的群体有不同的标准。
首先,我想你知道
其次,和您一样,我曾经合作过但没有积极使用断言的组,但是如果您的团队(或API的使用者)决定使用断言,那么断言听起来就像是正确的机制。
如果我是你,我会用
正如其他人所说
如果这个API是为外部公司/团队设计的,我会坚持使用它
在一天结束的时候,主要的事情是你的代码可以清晰地通信。当地的例外继承制度就像当地的行话一样——它为内部人士添加信息,但也会迷惑外部人士。
关于检查空值,我认为这是有道理的。首先,它允许您在构造异常时添加有关空值的消息(即节点或令牌),这将很有帮助。第二,将来你可能会使用
|
![]() |
2
12
标准的Java异常是
对于公共API,请检查参数并尽早彻底失败。时间/成本无关紧要。 |
![]() |
3
7
在Java中,通常会抛出一个非法的异常事件。 |
![]() |
4
2
如果你想要一个关于如何编写好Java代码的指南,我可以高度推荐这本书。 Effective Java 乔舒亚·布洛克。 |
![]() |
5
2
听起来这可能是 assert :
|
![]() |
6
2
您的方法完全取决于您的函数向调用者提供的契约——节点不为空是一个先决条件吗? 如果是,那么如果节点为空,则应该抛出异常,因为这是违反合同的行为。如果不是这样,那么您的函数应该静默地处理空节点并做出相应的响应。 |
![]() |
7
1
我认为很大程度上取决于方法的契约以及调用者的知名度。 在这个过程的某个时刻,调用者可以在调用方法之前采取行动来验证节点。如果您认识调用者,并且知道这些节点总是经过验证的,那么我认为可以假定您将获得良好的数据。基本上,责任在呼叫者身上。 但是,如果您提供了一个分布式的第三方库,那么您需要验证节点是否为空,ETC… 非法语言异常是Java标准,但也是运行时异常。因此,如果您想强制调用者处理异常,那么您需要提供一个检查异常,可能是您创建的自定义异常。 |
![]() |
8
1
我个人希望nullpointerExceptions只在意外情况下发生,因此必须使用其他东西来指示传递了非法参数值。IllegalArgumentException可以。
这对于那些阅读代码的人来说应该足够了,但是对于那些在凌晨3点接到支持电话的可怜的人来说也足够了。 (而且,总是为你的例外情况提供一个解释性的文本,你会在悲伤的一天感激他们) |
![]() |
9
0
与另一个类似:java.lang.IllegalArgumentException。 关于检查空节点,那么在节点创建时检查错误的输入呢? |
![]() |
10
0
我不必取悦任何人,所以我现在作为规范代码所做的就是
这让我睡得很香。 其他人会不同意。 |