我对创建 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!因此,准确地说:当您扩展 Exception
或 Exception
的任何子类(除了 RuntimeException)时,您正在创建一个受检查的异常!
关于java - 在java中创建检查异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939732/