一.异常的概念
1.异常( Exception 也称例外)就是在程序的运行过程中
所发生的不正常的事件,它会中断正在运行的程序
2.异常的分类
二.捕获异常
1.try-catch 组合
2. try-finally 组合
finally 是无论是否产生异常,都执行的代码,但是有一种情况 finally 不执行,即退出 Java 虚拟机。
3. try-catch-finally 组合
正常情况:执行 try-finally
异常情况:类型相匹配,执行 try-catch-finally
异常情况:类型不相匹配,执行 try-finally
4.如果在 catch 中存在 return 语句,则先执行完 finally 语句
再回头执行 return 语句
三.声明异常
1 声明异常的关键字 throws
方法名的后面,用于声明该方法可能会产生一个异常
如果方法声明的是 Exception 类型的异常或者是 Checked
Exception 异常,要求方法的调用处必须做处理。
(1)继续使用 throws 向上(方法的调用处)声明
(2)使用 try-catch-finally 进行处理
如果声明的是 RuntimeException 类型的异常,那么方法的调用处可处理可不处理。
2.继承关系中的声明异常
1. 父类的方法声明了 Exception 类型的异常,子类在重方法时,可以声明也可以不声明。但是如果子类重写后的方法使用 super 关键字调用父类的方法,那么要求必须对异常进行处理。
2. 如果父类的方法没有异常,那么子类的方法如果一定会有 Exception 或 Checked 异常,要求子类必须自己使用 try-catch 处理,或者给父类方法加上异常的声明
3. 如果子类在重写父类的方法时,产生的异常是RuntimeException 异常时,那么可以不用处理
3.throw 抛出异常对象
写在方法里,,在捕获一个异常前,必须有一段代码先生成异常对象,并把它抛出。这个过程我们以手工做,也可以由 JRE 来实现,但是他们调用的都是 throw 子句。
四.常见异常
1.运行时异常 RuntimeException
算术异常 ArithmeticException
空指针异常 NullPointerException
类型转换异常 ClassCastException
数组下标越界 ArrayIndexOutOfBoundsException
期 望 的 数 据 类 型 与 实 际 输 入 类 型 不 匹 配
InputMismatchException
2.检查时异常 Checked Exception
SQLException
IOException
ParseException
五.自定义异常
1.为什么需要自定义异常
在程序中,可能会遇到任何标准异常类都没有充分的描术清楚问题,这种情况下可以创建自己的异常类
2。 自定义异常的步骤
1. 继承 Exception 或 RuntimeException
2. 定义构造方法
3. 使用异常