目录
异常:
1.异常基本介绍:
2.异常体系图:
3.五大运行时异常:
(1)NullPointerException空指针异常:
(2)AirthmetiException数字运算异常:
(3)ArrayIndexOutOfBoundsException数组下标越界异常:
(4)ClassCastException类型转换异常:
(5)NumberFormatException数字格式不正确异常:
4.异常处理机制:
(1)try-catch-finally(快捷键ctrl+alt+t)
(2)throws:
(3)自定义异常:
1.自定义的步骤:
2.throw和throws的区别:
异常:
1.异常基本介绍:
(1)概念:
Java语言中,将程序执行中发生的不正常情况称为异常。
(2)异常分类:
执行过程中所发生的异常事件可以分为两大类:
2.异常体系图:
3.五大运行时异常:
(1)NullPointerException空指针异常:
当应用程序试图在需要对象的地方使用null时,抛出该异常。
(2)AirthmetiException数字运算异常:
当出现异常的运算条件时,抛出该异常。
(3)ArrayIndexOutOfBoundsException数组下标越界异常:
用非法索引访问数组时抛出的异常,如果索引为负或大于等于数组大小,则该索引为非法索引。
(4)ClassCastException类型转换异常:
当试图将对象强制转换为不是实例的子类时,抛出该异常。
(5)NumberFormatException数字格式不正确异常:
当程序试图将字符串转换为一种数值类型,当该字符串不能转换为适合格式时,抛出该异常。
4.异常处理机制:
(1)try-catch-finally(快捷键ctrl+alt+t)
程序员在代码中捕获发生的异常,自行处理。
- 如果发生异常了,则异常后面的代码不会执行,直接进入catch块。
- 如果异常没有发生,则顺序执行try的代码块,不会进入catch。
- 不管异常是否发生,finally代码块内的代码都执行,finally代码块中的语句在try-catch代码块中的语句执行完之前执行完。
- 可以有多个catch语句,捕获不同的异常,要求父类异常在后,子类异常在前。
- try-catch,相当于没有捕获异常,执行finally后程序会直接退出。应用场景:执行一段代码,不管是否发生异常,都必须执行某个业务逻辑。
(2)throws:
将发生的异常抛出,交给调用者来处理,最顶级的处理者就是jvm。
- 对于编译异常,程序中必须处理,比如try-cach或者throws
- 对于运行时异常,程序中如果没有处理,默认就是throws的方式处理。
- 子类重写父类的方法时,对于抛出异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的一致,要么为父类抛出异常的子类型(异常体系图)。
(3)自定义异常:
1.自定义的步骤:
- 定义类:自定义异常类名,继承Exception或RuntimeException
- 如果继承Exception,属于编译异常。
- 如果继承RuntimeException,属于运行异常。