java - 在java中创建检查异常类

标签 java exception checked-exceptions

我对创建 checked exception class 感到困惑在Java中。

许多文章说可以通过以下方式创建自定义异常

class MyException extends Exception
{
  //constructor defined
}

因为RuntimeException也是继承自Exception类(class)。

是否无法创建一个仅涵盖已检查异常的类?

或者我需要指定已检查异常列表

class MyException extends IOException
    {
      //constructor defined
    }

在上面的代码中,可能存在我会错过某些已检查异常的情况。

最佳答案

这个:

class MyException extends IOException,FileNotFoundException

在 Java 中根本不可能。一个类只能扩展一个其他类。

重点是:

  • 当您扩展异常时,您正在创建一个受检查的异常。
  • 当您扩展 RuntimeException时,您正在创建一个未经检查的异常

这就是全部内容了。是的,你是对的,RuntimeException 扩展了 Exception不是检查异常,这有点尴尬。但这个事实基本上已经“融入”了 Java 语言,对此您无能为力(除了了解和接受)。

当您更新问题时 - 当您这样做时:

public class MyException extends IOException

然后您创建一个已检查异常,它也是 IOException!因此,准确地说:当您扩展 ExceptionException 的任何子类(除了 RuntimeException)时,您正在创建一个受检查的异常!

关于java - 在java中创建检查异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939732/

相关文章:

java - 已检查与未检查异常

java - 如何在java中识别已检查和未检查的异常?

java - 优点与缺点 - HibernateUtil 与 @Autowired SessionFactory

java - 使用express在 Node 服务器上接收JSON对象

Java:同步(对象)和RejectedExecutionException

java - 异常 - 检查和非检查异常类型

java - JDK 的这段摘录是如何编译的?

java - 将连续的字符串数据拆分为所需的垂直输出

java - 在 Java 中获取计算机内存信息

c++ - 从保护类析构函数中抛出异常导致 std::terminate