tl31439335 2015-01-15 04:04 采纳率: 50%
浏览 2638
已采纳

Java的API中对未检测异常的处理方式问题

在JDK的API中,有很多类似这样的语句if (pathname == null) { throw new NullPointerException(); },我是这样想的——程序员在编写程序时如何避免未检测异常呢,就是要先判断一下,API也是一样的,它也判断了,只是说它不知道如何很好的处理就干脆抛出来。好,现在程序员开始编写代码,如果程序员在自己的程序里面没有判断是否为空,最后这种空指针异常发生了,程序停止, 突然觉得API的这个判断好像写在那里也没什么用啊。 如果程序员在自己代码中判空了,这句话永远也执行不到,岂不是更没什么用处。

  • 写回答

4条回答 默认 最新

  • Coursera 2015-01-15 06:05
    关注

    真的好长一段。。。。
    OK,回答你的问题,其实你问的是在JDK的API中,而不是普通应用程序,所以这路并不适合所有应用程序。你可以想象一下API的设计,你并不知道输入参数会是什么。因为没有任何方法可以保证输入的参数不是null,所以在API设计的时候文档会需要指明,某些参数不允许是null,当然很多情况你可以传递进去让底层自动处理,但是API这么设计会导致性能下降。所以JDK采用了主动监测机制。顺便说一句,JDK7开始,有个新的API Objects.requireNonNull()是专门用来做null参数检测的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制