为什么 java.lang.RuntimeException
(或其子类)不强制我们在 try/catch 中编写代码
提供:
java.lang.Exception
或其子类(称为检查异常)力
我们在 try/catch
中编写代码阻止或强制我们处理它。
那为什么 java.lang.RuntimeException
会这样呢?或子类(称为未检查异常)不会强制我们在 try/catch block 中编写代码,即使它正在扩展 java.lang.Exception
添加示例:
public class ExceptionTest
{
public static void main(String[] args)
{
// HOW COMPILER COME TO KNOW or DECIDE THIS METHOD IS THROWING RuntimeException or Exception (Keep in mind java.lang.RuntimeException is again extending java.lang.Exception)
new ExceptionTest().test_1();
}
public void test_1() throws MyException
{
}
}
class MyRuntimeRuntimeException extends RuntimeException
{
public MyRuntimeRuntimeException() {
// TODO Auto-generated constructor stub
}
}
class MyException extends Exception
{
public MyException() {
// TODO Auto-generated constructor stub
}
}
最佳答案
这是Java语言设计的一部分。 RuntimeException 旨在成为代表程序员代表错误的异常,称为未经检查的异常。所有其他异常都是检查异常,目的是程序员应该通过捕获它们或在方法调用上使用 throws 声明来声明它们来显式处理它们,以让调用者知道它们可能会被抛出。
关于Java - 为什么 java.lang.RuntimeException 或其子类不强制我们在 try/catch 中编写代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18119911/