Java教程

java异常处理

本文主要是介绍java异常处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、简介:
java异常处理机制可以让程序具有极好的容错性,让程序更加健壮。当程序运行出现
意外情形时,系统会自动生成一个Exception对象来通知程序,从而实现“业务功能
代码”和“错误处理代码”分离,提供更好的可读性。
二、异常体系:
java把所有非正常情况分成两种:
    1、异常(Exception):出现的问题可以被捕获
        可以被捕捉的异常也可以分为两类:
            1、Check异常:派生自Exception的异常类,必须被捕捉或再次声明抛出。
            2、Runtime异常:派生自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、避免出现庞大的try块
     4、避免直接捕捉根异常
     5、不要忽略异常
这篇关于java异常处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!