Java - 为什么 java.lang.RuntimeException 或其子类不强制我们在 try/catch 中编写代码

标签 java exception

为什么 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/

相关文章:

java - liquibase 和 orai18n.jar

c++ - 执行 itk::writertype 的 update() 时出现异常

java - 如何验证 JUnit 测试中抛出的异常的详细信息?

Java 8 Date API - 获取月份中日期的序号位置

Java - GluProject 如何处理旋转

java - 如何使用 Java 下载 WordPress

c# - 将对象 (List<string>) 作为异常的一部分传递

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

Java:捕获父类(super class)型位于抛出列表中的异常

java - 如何在 CalendarView (DatePicker) 中隐藏周数