1、了解Java中的异常体系框架
介绍
异常就是程序运行过程中出现的错误。Java中,阻止当前方法或作用域的情况,称之为异常
Java语言的异常处理框架,是Java语言健壮性的一个重要体现
思想
Java把异常当做对象来处理,并定义一个基类Java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大子类:
1)、错误:Error
包括虚拟机错误和线程死锁,一旦Error出现,线程就彻底的挂了,被称为程序终结者
这种情况仅凭程序是无法处理的,在程序中也不会对Error异常进行捕捉和抛出
2)、异常:Exception
主要指编码、环境、用户操作输入出现问题,Exception主要包括两大类:
RuntimeException:运行时异常,也叫非检查异常(NullPointerException、ArrayIndexOutOfBoundsException、ClassCastException、ArithmeticException),会由Java虚拟机自动抛出并自动捕获,此类异常的出现绝大数情况是代码本身有问题,应该从逻辑上去解决并改进代码
检查异常(其他的一些异常):引起该异常的原因多种多样,比如说文件不存在或者是连接错误。该异常必须手动在代码里添加捕获语句来处理该异常。从程序语法角度讲是必须警醒处理的异常,如果不处理,程序就不能编译通过。
2、Java异常的捕获和处理try、catch、finally关键字思想:Java通过面向对象的思想进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中每个异常都是一个对象,它是Throwable类或其子类的实例。当一个方法出现异常后边抛出一个异常对象,该对象中包含有异常信息,调用这个对象方法可以捕获到这个异常并可以对其进行处理
关键字:Java的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws。
try
try语句不可以独立存在,必须与catch或者finally块同存,负责捕获异常,一旦try中发现异常,程序的控制权将被移交给catch块中异常处理程序
catch
负责如何处理。比如发出警告:提示、检查配置、网络连接、记录错误等,执行完catch块之后程序跳出catch块,继续执行后面的代码。
编写catch块的注意事项:多个catch块处理的异常类,要按照先catch子类后catch父类的处理方式,因为会就近处理异常
finally
最终执行的代码,用于关闭和释放资源
try{ //一些会抛出的异常代码 }catch(){ //处理该异常的代码块 }catch(){ //处理该异常的代码块 }finally{ //最终要执行的代码 }