码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习 - 第五个代码模型:异常处理结构

时间:2015-07-21 01:16:40      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

到现在为止已经清楚了异常的基本处理形式,但是遗留的两个问题:finally无用、throw无用,那么为了更好的解释这两个操作的含义,给出一个异常处理的标准结构。

范例:现在要求定义一个div()方法(定义在MyMath类里面),这个方法开发要求如下:

         · 此方法之中所有出现的异常一定要交给被调用处进行处理;

         · 在进行除法计算开始首先要输出一行提示信息“1、除法计算开始,打开计算功能”;

         · 在除法计算进行完毕之后也要输出一行提示信息“2、除法计算结束,关闭计算功能”;

         在所有的开发之中,首先一定要完成的是基本功能,不考虑任何有可能出现错误的情况。

范例:基本要求

class MyMath {

         public static int div(int x,int y) throws Exception {    // 异常由被调用处处理

                   int result = 0 ;      // 保存除法计算结果

                   System.out.println("1、除法计算开始,打开计算功能。") ;

                   result = x / y ;      // 进行除法计算

                   System.out.println("2、除法计算结束,关闭计算功能。") ;

                   return result ;

         }

}

public class TestDemo {

         public static void main(String args[]) {

                   try {

                            System.out.println("除法计算结果:"  + MyMath.div(10,2))  ;

                   } catch (Exception e) {

                            e.printStackTrace() ;

                   }

         }

}

1、除法计算开始,打开计算功能。

2、除法计算结束,关闭计算功能。

除法计算结果:5

         但是如果此时在除法计算过程之中出现了错误,则输出的信息如下。

1、除法计算开始,打开计算功能。

java.lang.ArithmeticException: / by zero

        at MyMath.div(TestDemo.java:5)

        at TestDemo.main(TestDemo.java:13)

         出错之后发现原本的设计是无法满足于当前要求的。

范例:标准结构

class MyMath {

         public static int div(int x,int y) throws Exception {        // 异常由被调用处处理

                   int result = 0 ;    // 保存除法计算结果

                   System.out.println("1、除法计算开始,打开计算功能。") ;

                   try {

                            result = x / y ;     // 进行除法计算

                   } catch (Exception e) {

                            throw e ;

                   } finally {

                            System.out.println("2、除法计算结束,关闭计算功能。") ;

                   }

                   return result ;

         }

}

public class TestDemo {

         public static void main(String args[]) {

                   try {

                            System.out.println("除法计算结果:" + MyMath.div(10,0))  ;

                   } catch (Exception e) {

                            e.printStackTrace() ;

                   }

         }

}

         在本结构之中就出现了try、catch、finally、throw、throws的标准组合应用。日后可以把两条输出语句理解为资源的打开和资源的关闭。当然,以上的代码还可以更加的简化,直接使用try…finally操作。

class MyMath {

         public static int div(int x,int y) throws Exception {     // 异常由被调用处处理

                   int result = 0 ;      // 保存除法计算结果

                   System.out.println("1、除法计算开始,打开计算功能。") ;

                   try {

                            result = x / y ;     // 进行除法计算

                   } finally {

                            System.out.println("2、除法计算结束,关闭计算功能。") ;

                   }

                   return result ;

         }

}

         一般情况下,当捕获了异常之后往往需要简单的执行一些处理操作。

Java学习 - 第五个代码模型:异常处理结构

标签:

原文地址:http://www.cnblogs.com/kvikon/p/4663165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!