捕获多个异常

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

输入图片说明

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

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

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块时,它们排列的顺序非常重要。一定要让异常的范围按从小到大排列。在相同继承层次的可以不考虑排列顺序

转载于:https://my.oschina.net/u/3212883/blog/856234

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值