在java中创建已检查的异常类

Ank*_*kit 0 java exception checked-exceptions

我对checked exception class在java中创建感到困惑.

许多文章都说可以创建自定义异常

class MyException extends Exception
{
  //constructor defined
}
Run Code Online (Sandbox Code Playgroud)

由于RuntimeException也是从Exception类继承的.

是否无法创建仅涵盖Checked Exceptions的类?

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

class MyException extends IOException
    {
      //constructor defined
    }
Run Code Online (Sandbox Code Playgroud)

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

Gho*_*ica 6

这个:

class MyException extends IOException,FileNotFoundException
Run Code Online (Sandbox Code Playgroud)

在Java中根本不可能.一个类只能延伸一个其他类.

重点是:

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

这就是全部.是的,你是对的,它有点尴尬,RuntimeException extends Exception不是一个经过检查的例外.但是这个事实基本上是"融入"Java语言,你无能为力(除了知道和接受).

当你更新你的问题时 - 当你这样做时:

public class MyException extends IOException
Run Code Online (Sandbox Code Playgroud)

然后你创建一个也是 IOException的已检查异常!所以准确地说:当你扩展或者任何子类ob (RuntimeException 除外)时,你创建了一个已检查的异常!ExceptionException