Java 我应该抛出什么异常

Java 我应该抛出什么异常,java,exception,Java,Exception,我是个新手,正在学习Java异常 public void function (argument) { if (condition) { throw new Exception; } } 我的困惑是: 如果我知道like条件将导致NullPointerException,那么我可以抛出NullPointerException 如果代码抛出一些我没有预料到的异常,或者说我不知道代码的异常是什么,我应该抛出什么 喜欢这个链接吗 said:“每个函数都会问一个问题。

我是个新手,正在学习Java异常

public void function (argument) {
     if (condition) {
        throw new Exception;
     }
}
我的困惑是:

如果我知道like条件将导致NullPointerException,那么我可以抛出NullPointerException

如果代码抛出一些我没有预料到的异常,或者说我不知道代码的异常是什么,我应该抛出什么

喜欢这个链接吗 said:“每个函数都会问一个问题。如果给出的输入使该问题成为谬误,则抛出异常。”

但是如果输入确实使一个问题成为谬误,但我自己不知道这个输入会导致这个谬误,我应该抛出什么

或者我应该运行足够的测试来查找所有异常并抛出它们


我知道我的问题很奇怪,但如果你知道我在说什么,请给我一些指示。谢谢

我认为应该抛出一个异常:

  • 如果函数不能满足既定条件

  • 它不能满足即将调用的函数的前提条件

  • 如果这会导致其他成员国不稳定


还有一些其他情况可以考虑,但基本上对我来说,这些是需要记住的主要事情。

来源:Oracle-Java教程-“”:

“在方法引发异常后,运行时系统会尝试查找一些东西来处理它。处理异常的可能“某些东西”集合是为访问发生错误的方法而调用的方法的有序列表。”

每个函数如果不直接提供处理异常的方法,则会返回给调用方一个成功的结果或一个未处理的异常供调用方处理

可能遇到异常并能够处理该异常的函数避免了调用方处理该异常的需要,类似地,能够处理其子例程异常的调用方也可以避免在子例程中写入处理程序

如果调用方调用的各种子例程可能都遇到相同的错误条件,那么在调用方中处理这些子例程会比在每个子例程中重写类似的代码(调用方可以更好地处理这些代码)产生更少的代码(以及处理异常的一致性)


来源:Oracle-Java教程-“”:

“如果可以合理地预期客户端可以从异常中恢复,则将其设置为检查异常。如果客户端无法从异常中恢复,则将其设置为未检查异常。”

尝试预测可能发生的事情,如果可能的话处理它,如果它在多个被调用方中重复,总是尝试让调用方做这项工作,并且让“树的叶子捕捉到光的工作”

或者我应该运行足够的测试来查找所有异常并抛出它们


编写测试线束可以是单独的,也可以是代码的一部分,如果它是内部的,那么通常(但不总是)您希望在发布版本中定义它。

您能详细说明您的要求吗?是否不清楚在特定情况下引发什么类型的异常,可恢复异常和不可恢复异常之间的区别和/或如何处理它们?尤其是行
或者我应该运行足够的测试来找到所有异常并抛出它们?
让我感到困惑。了解不同类型的异常:-
已选中
未选中