gpt4 book ai didi

java - 我应该针对无效输入抛出已检查或未检查的异常吗?

转载 作者:行者123 更新时间:2023-12-02 12:06:11 25 4
gpt4 key购买 nike

我正在编写一个需要一些输入的方法。现在,我认为以防御方式编写它是一个很好的做法(即检查输入是否正确)。

基本上,输入应该没问题,因为只有一个地方(可靠)使用此方法。

所以我的问题是,

  1. 这里的防御性编程合理吗?
  2. 如果是这样,它应该抛出检查异常还是非检查异常?

最佳答案

以惯用的方式在调用的每一层中乘以相同的输入检查通常是一种不好的做法:您重复自己,并且对其进行的更改很快就会变得非常糟糕或困惑。
所以我认为,如果您的方法被设计为可供多个客户端类使用的 API,那么它应该执行此检查,即使它可能是多余的。否则就保持干燥。

请注意,确保 API 一致性的最佳方法是通过单元测试覆盖您的方法。
通过这种方式,您仅在功能需求需要时才提供检查,并且您不会想太多。

If so, should it throw a checked or unchecked exception?

使用检查或非检查异常的用法是非常有争议的。
理论上,当需要客户端处理异常时,检查异常非常有用。但在实践中,如果客户端不想处理它或者该方法在 lambda 体内使用,它可能会变成噪音。

关于java - 我应该针对无效输入抛出已检查或未检查的异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53467449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com