8.1 异常的概述
在程序中,错误可能产生于程序员没有预料到的各种情况,或者是超出了程序员可控范围的环境因素,如试图打开一个根本不存在的文件等,在Java中,这种在程序运行时可能出现的一些错误称为异常。
创建Baulk类,再主方法中定义int型变量,将0作为除数赋值给该变量。
public class Baulk { //创建类Baulk
public static void main(String[] args) { //主方法
int result = 3 / 0; //定义int型变量并赋值
System.out.println(result); //将变量输出
}
}
运行的结果报告发生了算数异常ArithmeticException,系统不再执行下去,提前结束。
8.2 异常的分类
Java类库的每个包中都定义了异常类,所有这些类都是Throwable类。
Throwable类派生了Error和Exception连个子类。
Error类及其子类用来描述Java运行系统中的内部错误以及资源耗尽的错误,这类错误比较严重。
Exception称为非致命类,可以通过捕捉处理使程序继续执行。
8.2.1 系统错误——Error
Error类定义了常规环境下不希望由程序捕获的异常,比如:OutOfMemoryError、ThreadDeath等,这些错误发生时Java一般会选择终止。
public static void main(String[] args) { //主方法
System.out.println("梦想照亮现实!!!") //此处缺少必要的分号
}
8.2.2 异常——Exception
Exception是程序本身可以处理的异常,这种异常主要分为运行时异常和非运行时异常。
常见的运行时异常 |
|
异常类 |
说明 |
ClassCastExcrption |
类型转换异常 |
NullPointerException |
空指针异常 |
ArrayIndexOutOfBoundsException |
数组下标越界异常 |
ArithmeticException |
算数异常 |
ArrayStoreException |
数组包含不兼容的值抛出的异常 |
1、运行时异常
是程序运行过程中产生的异常,它是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等这类异常一般是由程序逻辑错误1引起的,应该从逻辑角度尽可能避免这类错误。
public class Baulk {