sas*_*har 15 java exception-handling exception nullpointerexception
我听说捕捉NullPointerException
是一种不好的做法,我认为这是明智的.让NullPointerException
传播到顶部将允许检测出错的东西.但很多时候我看到很多朋友都Exception
直接捕捉到他们不必担心上面代码中可能出现的所有不同类型的异常.这是一个好习惯吗?什么是最好的未处理的其他类型的例外?除此之外,我还可以处理NullPointerException
特定代码,我们确定异常的来源.那么何时处理异常以及什么时候不应该处理它们?什么是可能的最好的例外列表,最好不做处理?
Viv*_*ath 26
口袋妖怪异常处理很糟糕.特别是,如果它是一个空块而你只是吞咽它们.你有特定类型的异常,因为它们实际上是指特定情境中的特定事物(基本上它们告诉你出了什么问题).因此,通过捕捉Exception
你说你不关心那些例外是什么,你不关心发生了什么.这可能不是你想要的.
通常,捕获异常时遵循以下规则:
您可以在代码中轻松检查空值,因此无需显式捕获空指针异常.让NullPointerException
事情发生是没有意义的(这是不好的做法).即使您有一些代码抛出一个NullPointerException
代码,而您无法控制且无法修复的代码,您应该确定导致它们NullPointerException
并专门测试它们的输入参数.
你不应该抓住的另一个例外是IllegalArgumentException
.这个异常意味着你传入了一个没有意义的参数.您应该明确地测试输入参数以确保它们是理智的并且不会导致输入参数,而不是捕获此异常IllegalArgumentException
.
捕捉NullPointerException
被认为是一种不好的做法的"原因" 并不是因为当出现问题时你应该让它冒出来!说任何例外都是"最好不要处理",完全基于它的类型似乎是一个坏主意.
NPE被认为是编程错误的结果.严格正确的程序永远不应该生成一个.看到它被捕获的原因是它通常意味着代码扔了一个,程序员决定抓住它并掩盖它,而不是修复导致它的破坏代码!
例如,如果您出于业务原因将其耦合到内部存在错误的API并偶尔抛出空指针,那么抓住它,对其执行某些操作/通过更好的消息通知用户将是完全合法的.让'null'点击UI只是因为有人说"捕捉空指针异常是坏的"是没有意义的!
java.lang.Exception
在特定情况下捕获可能是合法的,但通常"我很懒"不是其中之一.:)例如,如果您正在实现一个API并且想要确保没有任何异常从规范中出现,那么您可能会捕获Exception并将其包装在您定义的某个应用程序异常中.
如果可以通过这样做添加一些值,则应该只捕获异常.否则你应该让它传递给调用者.
NullPointerException通常是代码中的错误的结果.怎么能明智地把它固定在一个挡块上?
没有被关于例外的困扰并不是一种好的做法.
归档时间: |
|
查看次数: |
21901 次 |
最近记录: |