美文网首页
5、异常处理

5、异常处理

作者: 24_yu | 来源:发表于2017-11-03 13:35 被阅读0次
image.png

java Exception:
1、Error
2、Runtime Exception 运行时异常
3、Exception
4、throw 用户自定义抛出的异常
异常分为两大类型:
● Error类:代表了编译和系统的错误,不允许捕获,比如虚拟机错误,内存空间不足,方法调用栈溢出等,如java.lang.StackOverFlowError和Java.lang.OutOfMemoryError等,对于这类错误,java编译器不去检查,仅靠程序本身也无法恢复和预防,建议终止程序

● Exception类:表示程序可以处理的异常,可以捕获且有可能恢复,对于这类异常,应尽可能处理异常,是程序恢复运行。此类又可分为运行时异常Runtime_Exception和非运行时异常Non_RuntimeException两个直接子类。

+ 运行时异常:对应于编译错误,是指java程序在运行时产生的由解释器引发的各种异常。比较常见的此类异常:除数为0时的算术异常ArithmeticException、错误的类型转换、数组下标越界ArrayIndexOutOfBoundsException、空指针异常NullPointerException
+非运行时异常:又称可检测异常,此类异常可使用throws和try-catch-finally来处理。比较常见:SQLException、IOException等

二、异常处理流程

1、 如果程序之中产生了异常,那么会自动的由JVM根据异常的类型,实例化一个指定异常类的对象;
2、 如果这个时候程序之中没有任何的异常处理操作,则这个异常类的实例化对象将交给JVM进行处理,而JVM的默认处理方式就是进行异常信息的输出,而后中断程序执行;
3、 如果程序之中存在了异常处理,则会由try语句捕获产生的异常类对象;
4、 与try之后的每一个catch进行匹配,如果匹配成功,则使用指定的catch进行处理,如果没有匹配成功,则向后面的catch继续匹配,如果没有任何的catch匹配成功,则这个时候将交给JVM执行默认处理;
5、 不管是否有异常都会执行finally程序,如果此时没有异常,执行完finally,则会继续执行程序之中的其他代码,如果此时有异常没有能够处理(没有一个catch可以满足),那么也会执行finally,但是执行完finally之后,将默认交给JVM进行异常的信息输出,并且程序中断;

三、一些需要注意的地方

●在catch块中,由上至下的异常范围越来越大
try语句在返回前,将其他所有的操作执行完,保留好要返回的值,而后转入执行finally中的语句,而后分为以下三种情况:
情况一:如果finally中有return语句,则会将try中的return语句<font color=blue>”覆盖“</font>掉,直接执行finally中的return语句,得到返回值,这样便无法得到try之前保留好的返回值。
情况二:如果finally中没有return语句,也没有改变要返回值,则执行完finally中的语句后,会接着执行try中的return语句,返回之前保留的值。
情况三:如果finally中没有return语句,但是改变了要返回的值,这里有点类似与引用传递和值传递的区别,分以下两种情况,:
1)如果return的数据是基本数据类型或文本字符串,则在finally中对该基本数据的改变不起作用,try中的return语句依然会返回进入finally块之前保留的值。
2)如果return的数据是引用数据类型,而在finally中对该引用数据类型的属性值的改变起作用,try中的return语句返回的就是在finally中改变后的该属性的值。

四、throw关键字

public class TestDemo { 
    public static void main(String args[]){ 
        try { 
            throw new Exception("抛着玩的,你管不着。") ; 
        } catch (Exception e) { 
            e.printStackTrace() ; 
        } 
    } 
} 

相关文章

  • 5、异常处理

    java Exception:1、Error2、Runtime Exception 运行时异常3、Exceptio...

  • PHP学习笔记 - 进阶篇(10)

    异常处理 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过...

  • php学习笔记(六)

    PHP异常处理 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过thro...

  • php 异常处理

    从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出...

  • 5嵌套异常处理

    异常处理程序可以嵌套,以便内部域中引发的异常可以由本地异常处理程序和任意数量的包含异常处理程序处理。这种设计允许由...

  • 5.异常处理

    目录:1.介绍2.异常类及继承3.as、raise、finally介绍4.异常的传递5.异常的捕获时机6.总结 1...

  • PHP异常

    抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw...

  • 7.0 C++ 远征:异常处理

    5-1异常处理 [TOC] 1.异常:程序运行期出现的错误 2.异常处理:对有可能发生异常的地方做出预见性的安排 ...

  • 1.10 PHP异常处理

    1.抛出一个异常 从PHP5开始,PHP支持 异常处理 ,异常处理是面向对象的一个重要特性,PHP代码中的异常通过...

  • 10.2.1 PHP异常处理1

    10.2.1 PHP异常处理1 异常(Exception)处理用于在指定的错误发生时改变脚本的正常流程。是PHP5...

网友评论

      本文标题:5、异常处理

      本文链接:https://www.haomeiwen.com/subject/yoktmxtx.html