在 java 中创建检查异常 class

create checked exception class in java

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

很多文章说可以通过

创建自定义异常
class MyException extends Exception
{
  //constructor defined
}

因为RuntimeException也是继承自Exceptionclass。

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

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

class MyException extends IOException
    {
      //constructor defined
    }

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

这个:

class MyException extends IOException,FileNotFoundException

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

重点是:

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

仅此而已。是的,你是对的,RuntimeException extends Exception 尴尬,但 不是 已检查异常。但这个事实基本上是 "baked" 进入 Java 语言,对此你无能为力(除了知道和接受)。

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

public class MyException extends IOException

然后你创建一个 checked 异常,它是 也是 一个 IOException!所以准确地说:当你扩展 Exception 或任何子 classes ob Exception (except RuntimeException) 你正在创建一个检查异常!

Is it not possible to create a class that will cover only Checked Exceptions ?

覆盖异常?
我认为您误解了异常概念。 您将创建的任何异常都不会涵盖所有异常,因为异常根 class 是 Exception 而不是您的自定义异常 class.

In above code, there can be a scenario where i would miss certain checked exceptions.

您想表示一个可以包装任何已检查异常的异常吗?
因此,在您的构造函数中提供一个字段 class 以将您的异常与任何已检查的异常相关联:

public class MyCheckedException extends Exception
{
   public MyCheckedException(Exception causeException){
     super(causeException);
   }
}