java异常处理机制简要概述

来源:互联网 发布:怎么用ipad看淘宝直播 编辑:程序博客网 时间:2024/06/07 11:24

**Java异常处理机制**

java异常处理机制:java异常处理机制就是针对异常对象制定的捕获和传播(再抛出)方式的处理机制。

一、异常处理机制图解:


注:1、所有java类库中的异常类包括自定义类都是Throwable类的子类。

2、Throwable类有两个标准的子类,java.lang.Error和java.lang.Exception类。

3、其中Error错误类与java虚拟机相关,这类错误一般是不可被修正或恢复的错误,而Exception这类错误一般都能够被捕捉和处理。

4、RuntimeException:在定义方法时不需要声明便会处理。而CheckedException此类定义方法时必须捕获,不然就将其错误传递下去了。

二、java异常的捕获与处理

java异常的捕获机制是由try、catch和finally关键字组成的语句实现的

语法结构如下:

try{                              //开始检测可能出现的异常                                  //可能引发异常的java代码块}catch(SomeException se){         //捕获异常                                  //对产生的异常进行处理}


try{                              //开始检测可能出现的异常                                  //可能引发异常的java代码块}catch(SomeException se){         //捕获异常                                  //对产生的异常进行处理}catch(OtherException oe){        //可以捕获多个异常}

try{                              //开始检测可能出现的异常                                  //可能引发异常的java代码块}catch(SomeException se){         //捕获异常                                  //对产生的异常进行处理}finally{                         //完成try-catch语句块的结尾工作                                  //清除异常,或结束操作}


举例说明:

public class ExceptionSample1 {public static void main(String[] args){int[] a = new int[10];for(int i=0;i<=a.length;i++){try{a[i] = 100/i;                    //可能出错的代码块}catch(ArithmeticException e){           //捕获第一种可能出现的异常System.out.println("除数为0");a[i] = 200;}catch(ArrayIndexOutOfBoundsException e){  //捕获第二中可能出现的异常,即数组越界异常e.printStackTrace();              //打印出其堆栈的内容}}for(int i=0;i<a.length;i++){System.out.println(a[i]);}}}


finally举例说明:

public class TestFinally {public static void main(String[] args){int arr[] = new int[]{1,2,3};try{         //catch一旦捕捉到一个错误之后就将停止try语句的代码块System.out.println(arr[4]);int i = 5/0;System.out.println(i);}catch(ArrayIndexOutOfBoundsException e){System.out.println("数组越界了");e.printStackTrace();}catch(ArithmeticException ae){System.out.println("被除数为0");} finally{      //finally语句块在每次运行之后都会执行System.out.println("结束");}}}



从方法体中抛出异常及异常再抛出:

public class ExceptionSample3 {public static void main(String[] args)throws ArithmeticException{  //将异常再抛出int z;z = Division(10,0);System.out.println(z);}static int Division(int x, int y) throws ArithmeticException {   //方法体抛出异常return x/y;}}

throw类型:

public class TestEX {public static void main(String[] args){TestEX t = new TestEX();t.test(0);}void test(int i) throws ArithmeticException{if(i == 0)throw new ArithmeticException("被除数为0");}}


throw和throws的区别:

    throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,只是向上传递异常。而throw则是指抛出一个具体的异常。

原创粉丝点击