• 捕获多个异常


    当遇到异常时,除了可以将异常抛出,还可以将其捕获。抛出虽然简单,但是有时却不得不使用捕获来处理异常。如果程序遇到异常而没有捕获,则程序会直接退出。这在大多数情况下是不能被接受的,至少需要保存程序当前状态才能退出。本实例将演示如何捕获多个异常,实例运行效果如图

    Java中捕获异常是通过trycatchfinally 3个块来完成的。其中try块是必需的,catchfinally块可以选择一个或两个。try块用来放置可能出现问题的语句,如果在try块中可能出现多个异常,则最好提供多个catch块来进行捕获。这样可以针对不同的异常提供不同的处理方案。如果try块中程序的异常和第一个catch块捕获的异常不匹配,JVM将比较第二个catch块,依此类推,直到出现匹配的为止。如果没有找到匹配的,异常对象将抛给调用该方法的方法。

    编写类CatchExceptions,在该类的main()方法中演示了trycatchfinally块的用法。代码如下:

    package com.mingrisoft.exception;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class CatchExceptions {
        private static String URL = "jdbc:mysql://localhost:3306/db_database18";
        private static String DRIVER = "com.mysql.jdbc.Driver";
        private static String USERNAME = "mr";
        private static String PASSWORD = "mingri";
        private static Connection conn;
        
        public static Connection getConnection() {
            try {
                Class.forName(DRIVER);// 加载驱动程序
                conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);// 建立连接
                return conn;
            } catch (ClassNotFoundException e) {// 捕获类为发现异常
                e.printStackTrace();
            } catch (SQLException e) {// 捕获SQL异常
                e.printStackTrace();
            }
            return null;
        }
        
        public static void main(String[] args) {
            CatchExceptions.getConnection();
        }
    }

    说明:代码中首先捕获了ClassNotFoundException,然后是SQLException。

    心法领悟:捕获多个异常的使用。

    对于可能抛出多个异常的代码块,可以不对每个异常都提供一个catch块进行处理。此时需要提供这些异常的父类,如Exception,使用catch块处理。当有多个catch块时,它们排列的顺序非常重要。一定要让异常的范围按从小到大排列。在相同继承层次的可以不考虑排列顺序。

  • 相关阅读:
    html基础笔记
    webpack实用配置总结
    Vue生命周期
    Vue跨域解决方法
    日历
    绝对地址和相对地址
    HTML+CSS要点
    (利用DOM)在新打开的页面点击关闭当前浏览器窗口
    前端面试
    前端工程师的知识体系
  • 原文地址:https://www.cnblogs.com/mrxy/p/6530343.html
Copyright © 2020-2023  润新知