为什么SQL异常的行为与Exception层次结构中的其他两个同级异常不同

问题描述

public static void main(String[] args){
        
        try {
            save();
            log();
        }
        
        catch(sqlException | IOException x) {
            
        }
         
    }
    
    
    private static void save() throws IOException{}
    
    private static void log() throws sqlException{}

在Exception层次结构中,我们知道sqlException,InterrupedioException,FileNotFoundException是IOException的扩展。在上面的代码中,如果我将Just IOException放在catch块中,则它显示编译错误(要求我添加sqlException)。想象一下,如果我在log()中有ReflectiveOperationException或FileNotFoundException而不是sqlException,那么如果我仅将IOException放在main()的catch块中,编译器就可以了。如果我们提到另一个异常,则蚀建议说“删除该异常,因为它已经被替代异常捕获了”。 sqlException还是IOException的子代,那么为什么它的行为有所不同?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)