java - 自定义异常问题

标签 java exception

我创建了一个自定义异常类,如下

public class CustomException extends Exception{
// some code here
}

现在我有一段代码如下

File file = new File("some_file_path");
try {
    FileOutputStream outputStream = new FileOutputStream(file);
} catch (CustomException e) {
    e.printStackTrace();        
}

但是编译器显示错误未处理的异常类型FileNotFoundException

我的观点是编译器不明白我正在通过 CustomException 捕获 FileNotFoundException 吗?

请帮忙。

最佳答案

FileNotFoundExceptionIOException 的子类,而 IOException 是 Exception 的子类。

分层 -

java.lang.Throwable
    java.lang.Exception
        java.io.IOException
            java.io.FileNotFoundException  

并且 CustomExceptionException 的子类,其层次结构是 -

java.lang.Throwable
    java.lang.Exception
        java.io.CustomException

很明显,CustomException不在异常链中,它既不是IOException也不是FileNotFoundException的父类(super class),这就是为什么你可以不使用 CustomException 捕获 FileNotFoundException

但是您可以使用 IOExceptionExceptionThrowable 捕获 FileNotFoundException,但 FileNotFoundException 除外>.

关于java - 自定义异常问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14723168/

相关文章:

java - 我做的不正确或理解 Android 上的双缓冲吗?

java - 通过JobOperator停止JobInstance

java - 在 hibernate 中映射复合外键

oracle - Oracle Weblogic Server客户端错误消息禁止或限制

c++ - 是否可以捕获 lambda 类型的异常?

sql - 中止 MySQL 脚本执行的方法(可能引发错误)?

java - 如果 - 字符后面只有空格,则正则表达式匹配失败

java - 使用 Dropbox 进行分页

android - 将 TextView 传递给 Android 中的 Intent

c++ - 使用 strcpy 时出现异常错误