捕获空指针异常是代码异味吗?
2022-08-31 17:13:27
最近,我的一位同事写了一些代码来捕获整个方法周围的空指针异常,并返回一个结果。我指出了空指针可能有很多原因,所以我们将其更改为一个结果的防御性检查。
然而,捕捉NullPointerException对我来说似乎是错误的。在我看来,Null 指针异常是错误代码的结果,而不是系统中的预期异常。
是否有任何情况捕获空指针异常是有意义的?
最近,我的一位同事写了一些代码来捕获整个方法周围的空指针异常,并返回一个结果。我指出了空指针可能有很多原因,所以我们将其更改为一个结果的防御性检查。
然而,捕捉NullPointerException对我来说似乎是错误的。在我看来,Null 指针异常是错误代码的结果,而不是系统中的预期异常。
是否有任何情况捕获空指针异常是有意义的?
我能想到一个用途,永远抓住一个:NullPointerException
catch (NullPointerException) {
ApplyPainfulElectricShockToProgrammer();
}