Java 引发IOException和RuntimeException之间的区别
为什么当我在方法内部抛出Java 引发IOException和RuntimeException之间的区别,java,exception,Java,Exception,为什么当我在方法内部抛出RuntimeException时,我没有得到任何错误,但是当我在方法内部抛出IOException时,我也需要从方法中抛出异常 public void throwException() { throw new RuntimeException(); } 这个很好用。当我抛出IndexOutOfBoundsException、NullPointerException和inputmaschException等等时,也会发生同样的情况 但是当我抛出IOExcepti
RuntimeException
时,我没有得到任何错误,但是当我在方法内部抛出IOException
时,我也需要从方法中抛出异常
public void throwException() {
throw new RuntimeException();
}
这个很好用。当我抛出IndexOutOfBoundsException
、NullPointerException
和inputmaschException
等等时,也会发生同样的情况
但是当我抛出IOException
时,该方法也必须抛出IOException
:
public void throwException() throws IOException {
throw new IOException();
}
RuntimeException
是未检查的异常,您不需要将方法标记为引发此异常。从:
由于Java编程语言不需要方法来捕获或指定未检查的异常(RuntimeException、Error及其子类),程序员可能会试图编写只抛出未检查异常的代码,或者使其所有异常子类继承RuntimeException
顾名思义,您不需要检查这样的运行时异常,因此语言规范不要求您用
抛出标记方法运行时异常
是未检查的异常,您不需要将方法标记为抛出此异常。从:
由于Java编程语言不需要方法来捕获或指定未检查的异常(RuntimeException、Error及其子类),程序员可能会试图编写只抛出未检查异常的代码,或者使其所有异常子类继承RuntimeException
顾名思义,您不需要检查这样的运行时异常,因此语言规范不要求您使用throws
标记方法。您基本上是在问这个问题。IOException是更具体的Java.Lang.Exception
你基本上是在问这个问题。IOException是更具体的Java.Lang.Exception
IOException
是一个(也就是说)常规异常,它不是RuntimeException
的子类,后者是一种特殊异常的超类
取自(矿山)
RuntimeException是那些异常的超类,可以
在Java虚拟机正常运行期间抛出
RuntimeException及其子类是未检查的异常。
无需在方法中声明未检查的异常或
构造函数的throws子句,如果可以通过执行
方法或构造函数,并在方法或
构造函数边界
IOException
是一个(可以说)常规异常,它不是RuntimeException
的子类,后者是一种特殊异常的超类
取自(矿山)
RuntimeException是那些异常的超类,可以
在Java虚拟机正常运行期间抛出
RuntimeException及其子类是未检查的异常。
无需在方法中声明未检查的异常或
构造函数的throws子句,如果可以通过执行
方法或构造函数,并在方法或
构造函数边界