Java:异常概述
Java中的异常
Java语言将程序运行过程中所发生的不正常严重错误称为异常,对异常的处理称为异常处理。
它会中断正在运行的程序,正因为如此异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点。
注 :该行代码因上面循环体出现数组下标越界异常而不被运行
异常分类
注:
Throwable:
常用方法:
public String getMessage():获取异常信息;
public void printStackTrace():输出异常堆栈中的异常信息
Exception:
构造方法:
public Exception():无参构造方法;
public Exception(String message):可以指定详细异常信息的有参构造方法;
Throwable有两个直接子类,Error类和Exception类。
1.Error : 指合理的应用程序在执行过程中发生的严重问题。当程序发生这种严重错误时,通常的做法是通知用户并中止程序的执行。
2. Exception:异常可分为运行时异常(RuntimeException)和检查时异常(CheckedException)两种:
⑴RuntimeException:运行时异常,即程序运行时抛出的异常。这种异常在写代码时不进行处理,Java源文件也能编译通过。 RuntimeException异常类及其下面的子类均为运行时异常。
蓝框:因为loopArray方法抛出运行时异常,所以调用该方法时即便不对该调用方法的代码进行处理,java源文件也能通过javac命令将该源文件编译成class文件。
红框:loopArray方法抛出运行时异常
⑵CheckedException:检查时异常,又称为非运行时异常,这样的异常必须在编程时进行处理,否则就会编译不通过。Exception异常类及其子类(除去RuntimeException异常类及其子类)都是检查时异常。
注:
红框:因为loopArray方法抛出检查时异常,所以调用该方法时必须对该调用方法的代码进行处理,否则该java源文件无法通过javac命令将该源文件编译成class文件。
蓝框1:因为该方法直接throw了一个检查时异常对象,所以该方法必须使用throws抛出该异常类或其父类。
蓝框2:loopArray方法抛出检查时异常
常见异常
异常名 |
说明 |
Exception |
异常类的根类 |
RuntimeException |
运行时异常类的基类 |
ArithmeticException |
算术错误情形,如以零作除数 |
ArrayIndexOutOfBoundException |
数组大小小于或大于实际的数组大小 |
NullPointerException |
尝试访问 null 对象成员 |
ClassNotFoundException |
不能加载所需的类 |
NumberFormatException |
数字转化格式异常,字符串到 float 转换无效 |
IOException |
I/O 异常的根类 |
FileNotFoundException |
找不到文件 |
SQLException |
数据库访问异常 |
InterruptedException |
线程被中断异常 |
处理异常
Java中对异常的处理有如下两种方式:
1.通过try、catch和finally关键字捕获异常;
2.通过throw或throws关键字抛出异常;