Java入门四

Java入门之异常

Java中为了处理错误和异常,有一个专门的Throwable类,其定义如下:

class Throwable{
	private String message;
	private Throwable cause;
	......
}

Throwable类的两个子类:Error(通常为致命错误,虚拟机可能退出,程序员不能对此类异常进行处理)、Exception(异常,程序员需要对此类异常进行处理)

Exception 的分类:

(1)运行异常 RuntimeException 程序员可以通过改善代码来避免的异常,对此类异常,编译器不作任何语法检查,如:NullPointerException、ClassNotFoundException 、ArrayIndexOutOfBoundsException 、NoSuchMethodError、IndexOutOfBoundsException、SQLException(Sql语句执行异常)、IOException、IllegalArgumentException(方法参数错误)、IllegalAccessException(无访问权限异常)。

(2)检查异常 CheckedException,异常中除了运行异常,其他的均为检查异常。

异常处理的两种手段:

(1)在函数内部进行处理:try……catch……语句,如:

(2)进行错误广播(返回给调用者):throws Exception

异常处理的过程:

抛出异常后异常进入异常栈,若有catch分支匹配到该异常,进行处理后出栈,继续执行下面的程序;

若匹配不到,返回给调用者。

class Student{
	void buyWater() throws AException{ //买水失败异常
		try {
			……
		}
		catch(BException e) { //摔断腿异常
			……
			throws new AException(e); //异常转换,将摔断腿异常转换为买水失败异常
		}
	}
}

注:覆盖函数不允许声明抛出被覆盖函数未声明的检查异常;覆盖函数的访问权限不能低于被覆盖函数的访问权限。



猜你喜欢

转载自blog.csdn.net/weixin_40304882/article/details/80951306