java异常处理——基础篇

    异常处理,英文名为exceptional handling,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。异常处理分离了接收和处理错误代码,异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。异常处理使用 try、catch 和 finally 关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。

异常处理分类

概念:

java异常处理——基础篇_第1张图片


Error:错误,由java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等(程序对其不做处理)

Exception:异常类的父类,包括编译时错误和运行时错误,其子类对应各种各样可能出现的异常事件,一般需用户显式的声明和捕获(用户需处理)

RuntimeException:一般特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。由系统自动检测并将他们教给缺省的异常处理程序(用户不必处理)

Error 和Exception的区别:

Error:
1.总是不可控制的
2.经常用于表示系统错误或低层资源的错误
3.如果可能的话,可以在系统级被捕捉

Exception:

1.可以是可控制的也可以是不可控制的

2.由程序媛导致的错误

3.应该在应用程序集被处理掉


异常的捕获和处理

异常处理的捕获和异常主要包括五个关键字:try,catch,finally,throw,throws。

java异常处理——基础篇_第2张图片



    当异常发生时,程序会中止当前的流程,根据获取异常的类型去执行相应的catch代码段,finally段的代码无论是否发生异常都有执行,执行后用于释放资源。

import java.io.*;

public class TestEx{
	public static void main(String[] args){
		int[] arr={1,2,3};
		System.out.println(arr[2]);
		try{
			System.out.println(2/0);			
		}
		catch(ArithmeticException ae){
			System.out.println("系统正在维护,请与管理员联系!");
			ae.printStackTrace();
			}
		finally
		{
			System.out.println("catch成功!");
		}
	}
}


运行结果如下:
java异常处理——基础篇_第3张图片



throw和throws的区别

throw:
1.throw是语句抛出一个异常
2.出现在函数体中
3.写了throw后,程序一定会执行该程序
throws:
1.throws是方法可能抛出异常的声明。在声明方法时,该方法可能要抛出异常

2.throws出现在方法函数中

3.写了throws后,不一定抛出异常,并不一定会出现异常。



总结:

    异常处理将错误代码独立出来,使得程序更加的严谨,程序写的更加整齐。同时可以顺着调用栈传递错误,这样就可以很快的查到错误的原因,方便以后的维护。

你可能感兴趣的:(java,异常处理)