”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > IllegalArgumentException 或 NullPointerException:Setter 方法中空参数的哪个异常?

IllegalArgumentException 或 NullPointerException:Setter 方法中空参数的哪个异常?

发布于2024-12-21
浏览:371

IllegalArgumentException or NullPointerException: Which Exception for a Null Parameter in Setter Methods?

何时为空参数抛出 IllegalArgumentException 或 NullPointerException

定义 setter 方法时,开发人员经常面临是否抛出 IllegalArgumentException 的困境或 null 参数的 NullPointerException。这两个异常根据其 JavaDoc 描述而显得相关:

  • IllegalArgumentException: 指示非法或不适当的参数。
  • NullPointerException: 抛出时null 使用不当。

但是,适当的选择是IllegalArgumentException (IAE) 原因如下:

  • 预期用法: NPE 用于与空取消引用相关的运行时错误,而 IAE 指定用于验证参数。
  • 误导性跟踪:堆栈跟踪中的 NPE 可能建议为 null取消引用而不是错误的参数值。
  • 一致性: IAE 通常用于其他无效参数错误,因此首选一致性。
  • Java API 不一致: 虽然 Java API 有时使用 NPE 来表示 null 参数,但不应模拟其不一致的情况。

因此,对于 null 不合适的 setter 方法,应该使用 IllegalArgumentException 来传达参数验证的意图。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3