异常处理总结

1.错误与异常的区别

  • 错误:程序在执行过程中所遇到的硬件或操作系统的错误,如内存溢出、虚拟机错误等。错误对程序运行是致命性的,错误将导致程序无法运行,只能靠外界干预。
  • 异常:在硬件和操作系统正常时,程序遇到的运行错。异常对程序运行是非致命性的,java语言的异常处理机制是程序能够捕获和处理异常。

2.异常处理机制

  • 抛出异常:生成异常对象,并交给运行系统的过程。
  • 捕获异常:在异常抛出后,运行系统从生成异常对象的代码开始,沿着方法的调用栈逐层回溯查找,直到找到包含相应异常处理的方法,并把异常对象提交给该放法为止的过程。

简单来说,发现异常的代码可以“抛出”一个异常,运行系统“捕获”该异常,并交由程序猿编写的相应代码进行异常处理。

3.异常处理类

java语言的异常类是处理运行时错误的特殊类,类中包含了改运行错误的信息和处理错误的方法等内容。

最上层的类为:Throwable,它是java.lang包中的一个类,并派生了两个子类java.lang.Error和java.lang.Exception。

Error类及其子类由系统保留,java程序不对这种错误进行直接处理,必须交由操作系统处理;而Exception子类是供程序使用的,它是用户能够捕捉到的异常情况。所以应用程序不处理Error类,一般所说的异常都是指Exception类及其子类。

Exception类有自己的属性和方法,它的构造方法有两个:

public Exception();

public Exception(String a);

  • 程序对错误与异常的处理方式有三种:一是程序不能处理的错误;二是程序应避免而不去捕获的运行时异常;三是必须捕获的非运行时异常。

3.使用try-catch-finally语句捕获和处理异常,格式如下:

try{
    要检查的语句序列

}catch(异常类名  形参对象名){
    
    异常发生时的处理语句系列
}
finally{
        
    一定会运行的语句系类
}

下面使用try-catch-finally语句对程序中产生的异常进行捕获和处理。

public class Demo02{
	public static void main(String[] args) {
		int i;
		int[] arr = {1,2,3,4};
		for(i = 0;i<5;i++) {
			try {
				System.out.println("arr["+i+"]/"+i+"="+(arr[i]/i));
			}
			catch(ArrayIndexOutOfBoundsException a) {
				System.out.print("捕获到了数组越界");
			}
			catch(ArithmeticException a) {
				System.out.print("异常类的名称是:"+a);
			}
			catch(Exception a) {
				System.out.println("捕获"+a.getMessage()+"异常!");
			}
			finally {
				System.out.println(" finally  i = "+i);
			}
		}
		System.out.println("继续!!");
	}
}

注意:异常对象与catch块的匹配是按照catch块的先后顺序进行的所以在处理多异常时应注意catch块的顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值