java异常处理

本文介绍了Java异常处理机制的重要性,详细阐述了异常体系,包括Check异常和Runtime异常的区别,以及如何进行异常捕获和处理。同时,强调了异常处理的注意事项,如避免过度使用异常,正确设置异常捕获顺序,以及避免庞大的try块和忽略异常。
摘要由CSDN通过智能技术生成
一、简介:
java异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现
意外情形时,系统会自动生成一个Exception对象来通知程序,从而实现“业务功能
代码”和“错误处理代码”分离,提供更好的可读性。
二、异常体系:
java把所有非正常情况分成两种:
    1、异常(Exception):出现的问题可以被捕获
        可以被捕捉的异常也可以分为两类:
            1Check异常:派生自Exception的异常类,必须被捕捉或再次声明抛出。
            2Runtime异常:派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象
    2、错误(Error):系统错误,通常有JVM(java虚拟机)处理。例如:系统崩溃、虚
                   拟机错误、动态链接失败等,这种错误无法恢复或不可能捕捉,
                   将导致应用程序中断。通常应用程序无法处理这些错误,因此应
                   用程序不应该试图使用catch块开捕捉Error异常。在定义该方
                   法时,也无须在其throws句子中声明该方法可能抛出的Error
                   异常及其任何子类。
    附:它们都继承自父类Throwable。
三、java异常处理机制:抛出异常,捕捉异常,处理异常。
try{
    //业务功能代码
}catch(异常类1 e1){
    //异常处理代码1
}catch(异常类2 e2){
    //异常处理代码2
}
......
catch(异常类n e3){
    //异常处理代码n
}
例如:
try{
    System.out.println(1/0);
}catch(ArithmeticException e){
    System.out.println(“算术异常”);
}
//结果:控制台打印算术异常
注意:1、不要过度使用异常。异常开销大,过度使用异常影响程序运行速度。
     2、异常捕获时,一定要先捕获小异常,再捕获大异常。否则小异常无法被捕捉到
        例如:
        try{
            System.out.println(1/0);
        }catch(Exception e1){
            //...
        }catch(ArithmeticException e2){
            //...
        }
        //这里会报错:Exception 'java.lang.ArithmeticException' has already been caught
        翻译(大概意思):该异常(java.lang.ArithmeticException)已经被捕获了
        说明:java.lang.ArithmeticException继承自java.lang.Exception,由于上面使用了java.lang.Exception捕捉异常(可以其自身以及
             其子类的异常),该异常已经被java.lang.Exception捕获了,且永远不会被下面的java.lang.ArithmeticException捕获。
     3、避免出现庞大的try4、避免直接捕捉根异常
     5、不要忽略异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值