欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习之异常机制

程序员文章站 2022-06-23 10:49:28
...

1.异常概念的引入

1.1场景分析

小王每天正常上班路上耗时30分钟,但是总会出现异常的情况,堵车、车祸等

1.2异常概念的提出

使用if-else处理异常情况,会导致代码臃肿、程序员花很大精力去堵漏洞,并且很难考虑所有漏洞,所以提出了异常机制

2.什么是异常

异常是指在程序运行过程中所发生的所有不正常的事件,会终止你正在运行的程序

2.1 什么是异常处理机制

Java编程语言使用异常处理机制为程序提供错误处理的能力

2.2 Java中如何进行异常处理

Java的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws
1.捕获异常
try:执行可能产生异常的代码
catch:捕获异常
finally:无论是否发生异常,代码总能执行
2.声明异常:
throws:声明方法中要抛出的各种异常
3.抛出异常:
throw:手动抛出异常

3.异常处理机制

3.1 使用try-catch块捕获异常

第一种情况:不产生异常,try块执行完,catch不执行

public void method(){
	try{
		//代码块
	} catch (异常类型 ex){
		//对异常进行处理的代码块
	}
}

第二种情况:出现异常,try块中产生异常代码段2后,代码段3不执行,如果匹配到异常类型,执行代码块4,使用printStackTrace()的堆栈跟踪功能显示程序运行到当前类的执行流程

public void method(){
	try{
		//代码段1
		//产生异常的代码段2
		//代码段3
	} catch (异常类型 ex){
		//对异常进行处理的代码块4
	}
	//代码段5
}

第三种情况:异常类不匹配,中断程序运行,不执行代码块3、代码段4、代码段5,可以匹配异常的父类

public void method(){
	try{
		//代码段1
		//产生异常的代码段2
		//代码段3
	} catch (异常类型 ex){
		//对异常进行处理的代码块4
	}
	//代码段5
}
System.err.print();
e.printStackTrace();
e.getMessage();

3.2 使用try-catch-finally处理异常

finally:是否发生异常都执行,除非退出程序System.exit(1)
存在return的try-catch-finally块:
return退出当前方法,退出当前函数
碰到return,执行finally块

try{
		//代码段1
		//产生异常的代码段2
} catch (异常类型 ex){
	//对异常进行处理的代码块3
	return;	
} finally{
	//代码块
}

4.常见的异常类型

Java学习之异常机制

5.异常的继承结构

Java学习之异常机制
Error表示仅靠程序本身无法恢复的严重错误,无法通过代码进行处理