java异常机制学习笔记

异常的概念:
异常的分类:
异常处理(try,catch,finally,throws,throw):
自定义异常:
jdk7异常处理:

异常处理:

捕获异常

try -----catch-----finally:

(try)执行可能产生异常的代码 -----> (catch)捕获异常 -----> (finally)无论是否发生异常代码总能执行

声明异常  throws:声明方法可能要跑出的各种异常
抛出异常  throw:手动跑出异常

try-catch-finally捕获异常的情况:
1、正常
2、出现异常
3、异常类型不匹配

异常对象常用方法:
方法名 说明
1、void printStackTrace() 输出异常的堆栈信息;
2、String getMessage() 返回异常信息描述字符串
是printStackTrace()输出信息的一部分

 

多重catch 的情况:
引发多种类型的异常
1、排列catch语句的顺序:先子类,后父类
2、发生异常时按照顺序逐个匹配
3、只执行第一个与异常类型匹配的catch语句
4、只要finally中有返回语句,则必然返回finally的值

 

throws 声明某个方法可能抛出的各种异常(常用在方法的后面,由该方法调用处的异常处理来处理)
1、声明异常,多个异常用逗号隔开
2、处理异常方式:①调用者处理异常 ②调用者继续声明异常;
异常最多只能抛到main(程序入口)方法处,main方法再抛就抛给了JVM(通常不这么做)

throw 手动抛出异常:程序员自己抛出一个异常并处理(throw用于方法块里面的代码,由方法块的throws Exception来调用异常处理类来处理)
自定义异常步骤:
①定义异常类——>②编写构造方法,继承父类的实现——>③实例化自定义异常对象——>④使用throw抛出
* 当方法调用的时候,被调用的方法出现异常的时候,
* 可以在被调用方法中处理(当调用的方法没有异常处理的时候),
* 也可以在调用方法中处理(当本方法有异常处理的时候)
分析:异常关键字的用法,throws用于抛出方法的异常,并且由该方法调用处的异常处理类来处理该异常 ,它常用在方法的后面,throw用于方法块里面的代码,比throws的层次要低,表示它抛出异常,但它不会处理它,而是由方法块的throws Exception来调用异常处理类来处理。

异常的分类;

1、异常类(Exception)错误类(Error)的父类是Throwable
2、Exception 分为运行时异常和Checked异常
运行时异常不要求必须捕获或声明抛出
Checked异常必须捕获或声明抛出

常见的运行时异常类型:
Exception 异常层次结构的父类
ArithmeticException 算术错误类型
ArrayIndexOutOfBoundException 数组下标越界
NullPointerException 试图访问null对象成员(空指针)
IllegalArugmentException 方法接收到非法参数(非法数据异常)
ClassCaseException 对象强制类型转换出错
NumberFormatException 数字格式转换异常

Checked异常类型
ClassNotFountException 不能加载所需的类
SQLException 数据库编译异常

 

分析:
ClassNotFoundException:无法找到指定的类异常,应用程序试图使用如Class类中的forName方法通过字符串名称加载类时,抛出该异常。
IOException:当发生某种 I/O 异常时,抛出此异常。此类是失败或中断的 I/O 操作生成的异常的通用类。
SQLException:提供关于数据库访问错误或其他错误信息的异常。
RemoteException:是许多与通信相关的异常的通用超类,这些异常可能会在执行远程方法调用期间发生。

猜你喜欢

转载自www.cnblogs.com/papaver-lhs/p/10461001.html