Java核心API之异常处理(上)
1、早期的异常处理机制 在Java编程语言出现之前,传统的异常处理方式常采用返回值来标识程序出现的异常情况,这罩脾青槊种方式虽然为程序员所熟悉,但是有许多缺点: 首先,一个API可以返回任意的返回值,而这些返回值本身并不能解释该返回值是否代表该异常的具体情况,需要调用API的程序自己判断并解释返回值的含义。为了大家便于理解早期异常处理机制,小编简单编写伪代码如下: public int dosome(){ 编写一段业务逻辑代码; if(出现第一种问题){ return 0; }else if(出现第二种问题){ return 1 ; }else if(出先第三种问题){ return 2; }else{ return 3; } }分析:早期的异常处理方式是添加返回值作为异常标识,但是调用者需要自己判断返回值的含义,正如上述伪代码,若出现错误返回值是0,调用者需要判断0具体是什么意义。

3、Java的异常处理机制 我们看到早期处理机制的方法,通过返回值标识异常具有诸多问题。现在让我们一起了解一下Java的异常机制的原理。 Java的处理异常方式很简单,见下面代码: try{ ... } catch(Exception e) { ... } finally { ... } Java要求将可能出现异常的代码放在try语句块中,程序会从导致异常的代码出跳出,java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交到catch块中的代码,然后继续执行后面的程序。如果没有找到处理该异常的catch块,执行finally代码块中的代码,然后中止当前线程。PS:线程的知识下节会继续讲解。

6、catch可以用来捕捉多个异常 一个try语句块可以有一个或多个catch语句块,可以处理try语句块中产生的多个不同类型的异常。 注意一点,catch从上至下捕获异常类型的顺序应该是先子类后父类。试想,如果catch铺货异常类先父类后子类,那么catch只能捕获父类的异常,不会捕获捕获子类的异常。
