异常处理

来源:互联网 发布:iphone6虚拟定位软件 编辑:程序博客网 时间:2024/06/06 08:55

在版本1.4之后,java引入了异常机制,用于处理程序中出现的错误和跟踪错误路径。
所有异常或错误都有一个共同的父类Throwable。Throwable类下分两个大的子类:Error与Exception
这里写图片描述
Throwable另一个分类方式为:可查异常(checked Exceptions)与不可查异常(unchecked Exceptions),Exception分为运行时异常(RuntimeException)与非运行时异常(编译异常)。非运行时异常与可查异常是在代码编译的过程中就可以检测出来的异常,所以又叫编译异常。所以他们之间的关系如下:
可查异常 = 非运行时异常(编译异常)
不可查异常 = 运行时异常(RuntimeException) + Error。
处理异常的机制:
抛出异常:throw、throws。
捕获异常:try、catch、finally。
重点结束一下捕获异常的三个关键字:
try 块:用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。
catch 块:用于处理try捕获到的异常。
finally 块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行:
1)在finally语句块中发生了异常。
2)在前面的代码中用了System.exit()退出程序。
3)程序所在的线程死亡。
4)关闭CPU。
5)所有在try和catch中的return与throw异常,都需要等finally执行完成才能真正返回,如果finally中有return或throw异常,则会覆盖之前的返回。

原创粉丝点击