JAVA 异常

一、概念

在计算机编程中,异常(Exception)是指在程序执行过程中发生的一些意外情况或错误,它打断了程序正常的执行流程。在Java中,异常通常被表示为对象,这些对象是派生自Throwable类的实例。

二、异常处理的目的

当程序发生异常时,能够保证程序继续运行

三、异常的分类

根据问题的级别分为:

Error:错误,蓝屏、硬件

Exception:异常,可以通过调整程序进行解决

        运行时异常:运行的过程中可能发生也可能不发生。

        编译时异常:如果不处理,程序无法运行。

四、java处理异常

1. 捕获异常(try-catch):

try :负责监视代码如果发生异常,直接进入catch

catch:负责捕获发生的异常信息

finally:不管是否发生异常,都要执行,用作释放资源,在return之前执行;仅当try或catch中执行代码 System.exit(0),finally不执行

try {
    // 可能会抛出异常的代码
} catch (ExceptionType1 e1) {
    // 处理ExceptionType1类型的异常
} catch (ExceptionType2 e2) {
    // 处理ExceptionType2类型的异常
} finally {
    // 可选的finally块,无论是否抛出异常都会执行
}

2. 抛出异常(throw)

throw:抛出,可以根据自己的需要,产生一些异常,建议抛出运行时异常,只能跑出一个异常,不能抛出多个

throw new SomeException("异常消息");

throws:声明抛出的异常,用在方法的签名上,可以声明多个

public void someMethod() throws SomeException {
    // 可能会抛出SomeException的代码
}

注意:

1. 如果需要强调某个方法需要注意问题,这时候需要使用throws 声明异常。

public static Connection getConnection() throws SQLException{
    Connection conn=DriverManager.getConnection(user,pwd,url);
    return conn;
}

2. 在操作数据库过程中,处理完异常后,要把异常信息进行通过throw抛出。

public int executeUpdate(String sql){
    try{
        conn=getConnection();
    } catch(Exception ex) {
        throw new RuntimeException(ex);
        System.out.println(ex.getMessage());
    } finally {
        close();//关闭数据库链接
    }
}

五、java处理异常的三种情况

没有发生异常:程序正常运行

发生异常,正常处理了,程序继续运行

发生异常,catch不能捕获,程序终止

注意:为了防止发生异常 catch不能捕获,建议使用Exception进行处理。

六、多重catch

一个try后面可以跟多个catch,每一个catch处理不同的异常,catch中异常的类型由小到大,最后是 Exception,只能执行其中一个catch

public void test(){
    try{

    } catch(NullPointerException ex1) {
        ……
    } catch(IndexOutofBoundsExcetpion ex2) {
        ……
    } catch(RuntimeException ex3) {
        ……
    } catch(Exception ex4) {
        ……
    }
}

建议不用多重catch,使用一个Exception即可

public void test(){
    try{
        ……
    } catch(Exception ex) {
        ……
    }
}
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值