Java:自动';抛出';声明:是吗?如果是,它的价值是什么?

Java:自动';抛出';声明:是吗?如果是,它的价值是什么?,java,function,exception,Java,Function,Exception,以任何方法为例publicstaticvoidmain(String[]args)与其他类型一样好。如果其中有代码将抛出,例如,NullPointerException,为什么不声明我的方法抛出这个呢 假设没有定义,所有方法都会抛出一些特定的预定义异常,对吗?如果是,它们是什么 为了澄清这一点,我并不是在寻求关于坏代码的帮助,而是在问一个关于Java本身如何工作的问题。有两组主要的异常。一个是继承运行时异常的人。您不需要定义它(因为void f()抛出了一些异常)。这些被称为未检查异常 对于其他

以任何方法为例
publicstaticvoidmain(String[]args)
与其他类型一样好。如果其中有代码将抛出,例如,
NullPointerException
,为什么不声明我的方法抛出这个呢

假设没有定义,所有方法都会抛出一些特定的预定义异常,对吗?如果是,它们是什么


为了澄清这一点,我并不是在寻求关于坏代码的帮助,而是在问一个关于Java本身如何工作的问题。

有两组主要的
异常。一个是继承运行时异常的人。您不需要定义它(因为
void f()抛出了一些异常
)。这些被称为未检查异常

对于其他人,你必须这样做。它们被称为检查异常


有关详细信息,请参见有两组主要的
异常。一个是继承运行时异常的人。您不需要定义它(因为
void f()抛出了一些异常
)。这些被称为未检查异常

对于其他人,你必须这样做。它们被称为检查异常


有关详细信息,请参见有两组主要的
异常。一个是继承运行时异常的人。您不需要定义它(因为
void f()抛出了一些异常
)。这些被称为未检查异常

对于其他人,你必须这样做。它们被称为检查异常


有关详细信息,请参见有两组主要的
异常。一个是继承运行时异常的人。您不需要定义它(因为
void f()抛出了一些异常
)。这些被称为未检查异常

对于其他人,你必须这样做。它们被称为检查异常


有关更多详细信息,请参见Java已检查和未检查异常。从:

未检查的异常类是运行时异常类和错误类

选中的异常类是除未选中的异常类之外的所有异常类。也就是说,选中的异常类都是Throwable的子类,而不是RuntimeException及其子类和Error及其子类

NullPointerException
是未检查异常的一个示例。这意味着您不必为每个有可能抛出它的方法捕获它或添加
抛出NullPointerException


FileNotFoundException
是选中的异常。因此,如果使用抛出
FileNotFoundException
FileInputStream
,则需要用try-catch块包围它,或者声明它所在的方法抛出了
FileNotFoundException

未检查的异常类是运行时异常类和错误类

选中的异常类是除未选中的异常类之外的所有异常类。也就是说,选中的异常类都是Throwable的子类,而不是RuntimeException及其子类和Error及其子类

NullPointerException
是未检查异常的一个示例。这意味着您不必为每个有可能抛出它的方法捕获它或添加
抛出NullPointerException


FileNotFoundException
是选中的异常。因此,如果使用抛出
FileNotFoundException
FileInputStream
,则需要用try-catch块包围它,或者声明它所在的方法抛出了
FileNotFoundException

未检查的异常类是运行时异常类和错误类

选中的异常类是除未选中的异常类之外的所有异常类。也就是说,选中的异常类都是Throwable的子类,而不是RuntimeException及其子类和Error及其子类

NullPointerException
是未检查异常的一个示例。这意味着您不必为每个有可能抛出它的方法捕获它或添加
抛出NullPointerException


FileNotFoundException
是选中的异常。因此,如果使用抛出
FileNotFoundException
FileInputStream
,则需要用try-catch块包围它,或者声明它所在的方法抛出了
FileNotFoundException

未检查的异常类是运行时异常类和错误类

选中的异常类是除未选中的异常类之外的所有异常类。也就是说,选中的异常类都是Throwable的子类,而不是RuntimeException及其子类和Error及其子类

NullPointerException
是未检查异常的一个示例。这意味着您不必为每个有可能抛出它的方法捕获它或添加
抛出NullPointerException


FileNotFoundException
是选中的异常。因此,如果您使用一个
FileInputStream
,它抛出一个
FileNotFoundException
,您需要用一个try-catch块将其包围,或者声明它所在的方法抛出一个
FileNotFoundException

运行时异常表示编程问题的结果,因此,不能合理地期望API客户端代码从它们恢复或以任何方式处理它们。这些问题包括算术上的例外,比如除以零;指针异常,例如尝试访问