第14章--异常

一、       本章内容介绍

异常的概念

异常体系图(!!)

常见的异常

异常处理的概念

异常处理的分类

自定义异常

throw和throws的对比

 

1.异常介绍

1.1.1       基本概念

Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)

1.1.2       执行过程中所发生的异常事件可分为两类

 

1) Error(错误):  Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError【栈溢出】和OOM(out of memory),Error 是严重错误,程序会崩溃。

2) Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如空指针访问,试图读取不存在的文件,网络连接中断等等,Exception 分为两大类运行时异常(程序运行过程中发生)和编译时异常(编译过程中发生)。

图1.

说明

1) Error 和  Exception 都是Throwable的子类.

2) 所有的Error 和 Exception 实现了Serializable 接口(简单说明:如果一个类实现了Serializable 接口,那么这个类的对象,就可以直接存放到磁盘(String) , 或者该对象可以在网络上传输. )

图2.

 

 说明:

1) Throwable 下有个两个重要的子类,Error, Exception

2) Exception 分为 编译异常和运行异常.

3) 编译异常的直接父类就是Exception

4) 运行异常的直接父类时RuntimeException

5) 编译异常 称为受检异常,必须处理,否则编译不能通过, 常见的有IOExcepton(文件操作),SQLException(数据库操作)

6) 运行异常, 可以不捕获,编译可以通过,并且可以运行,但是一旦发生了运行异常(又没有处理),则程序崩溃。常见的有: NullPointerException, ArrayIndexOutofBoundsExceptino(数组越界异常), ArithmeticException(算术异常),ClassCastException(类型转换异常)

2.常见的运行时异常

      

1.1.1       常见的运行时异常包括

 

1)      NullPointerException空指针异常

2)      ArithmeticException数学运算异常

3)      ArrayIndexOutOfBoundsException数组下标越界异常

4)      ClassCastException类型转换异常

5)      NumberFormatException数字格式不正确异常

 

1.1.2       常见的运行时异常举例

 

1)NullPointerException空指针异常
当应用程序试图在需要对象的地方使用 null 时,抛出该异常,看案例演示

2)ArithmeticException数学运算异常
当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例, 案例演示

3)ArrayIndexOutOfBoundsException数组下标越界异常

用非法索引访问数组时抛出的异常。如果索引为负大于等于数组大小,则该索引为非法索引

 4)ClassCastException类型转换异常

当试图将对象强制转换为不是实例的子类时,抛出该异常。例如,以下代码将生成一个 ClassCastException

 5)NumberFormatException数字格式不正确异常

当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常

 null调方法就出错了

猜你喜欢

转载自www.cnblogs.com/-xuewuzhijing-/p/13181265.html