java的异常处理机制_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java的异常处理机制

java的异常处理机制

 2014/4/7 15:50:18  天子之骄  程序员俱乐部  我要评论(0)
  • 摘要:最近,个人初步学习了java的异常处理机制,有些心得体会,故来与大家一起分享学习。我们一起从以下几个方面来探讨:一.什么是异常;二.什么是异常处理;三.异常在JVM的具体表现;四.try-catch-finally结构,throws语句,throw语句以及throws与throw区别;五.java中的异常类。首先,认识一下异常,很简单,就是在某些情况下,当前程序或代码无法继续进行的问题。而异常处理就是针对可能出现或已经出现的异常进行处理,使程序正常运行。Ok,最简单的处理就是if-else
  • 标签:Java 异常处理 异常
   最近,个人初步学习了java的异常处理机制,有些心得体会,故来与大家一起分享学习。
   我们一起从以下几个方面来探讨:
         一.什么是异常;   
         二.什么是异常处理
         三.异常在JVM的具体表现;
         四.try-catch-finally结构,throws语句,throw语句以及throws与throw区别;
         五.java中的异常类。
    首先,认识一下异常,很简单,就是在某些情况下,当前程序或代码无法继续进行的问题。 而异常处理就是针对可能出现或已经出现的异常进行处理,使程序正常运行。Ok,最简单的处理就是if-else,提前判断就行。所以这也是在异常处理机制引入之前的异常处理方法
    其后,我们先了解一下方法的调用堆栈。java虚拟机用方法调用堆栈来跟踪每个线程中一系 列的方法调用过程。每个线程都有一个独立的方法调用堆栈,堆栈底部是程序的入口方法main(),放一个新的方法被调用时,java虚拟机就会把描述该方法的堆栈结构置入栈顶,位于栈顶的方法是正在执行的方法。该方法执行完毕后,会将处理器控制权交还给调用它的方法,以此类推。这样来看。我们就不难看出异常在JVM的具体表现了:当一个方法中的一个语句抛出异常时,如果该方法没有给出处理该异常的语句,那么该方法就会终止执行,并将这个异常传递给推栈中的下一个方法,直到某个方法中含有该异常处理的语句为止。如果该异常被传递至main()方法,仍然没有被处理,则异常将会被抛至JVM,程序中断。
    理解上述后,想必大家对异常处理本质有一定了解,那么我们就具体看看java中关于异常处理给出的机制:
    1.try-catch-finally语句
       try{
           可能抛出的异常的语句         
         } catch(Exception1 e){
             异常处理代码
          } catch(Exception2 e){
                异常处理代码
          }
            .......
             finally{
               必须执行的代码
            }
       (1):如果try块中没有抛出任何异常,当try块中的代码执行结束后,finally中的代     码将会被执行。
       (2):如果try块中抛出了一个异常且该异常被catch正常捕获,那么try块中至抛出异常代码之后的所有代码将会被跳过,程序接着执行与抛出异常类型匹配的catch子句中的代码,最后执行finally子句中的代码。
       (3):如果try块中抛出了一个不能被任何catch子句捕获(匹配)的异常,try块中剩下的代码将会被跳过,程序接着执行finally子句中的代码,未被捕获的异常对象继续抛出,沿调用推栈顺序传递。
     2.throws语句,通过调用产生异常的方法来处理这些异常。
        <返回类型> 方法名 (参数)throws <异常类型列表>
        {
            方法体;
          }
        
      3.throw语句
         在java中,所有方法都是通过throw语句来抛出一个异常事件,抛出异常首先需要通过throw语句生成一个异常类的对象。
         throw new 异常类名;
    如果大家对throws 与throw 有些迷茫。ok,看看一下四点区别;
       1>.throws 代表一种状态,代表方法可能有异常抛出。
       2>.throws用在方法声明中,而throw用在方法中。
       3>.throws可以抛出多个异常,而throw只能用于抛出一种异常。
       4>.throw代表动作,表示抛出一个异常的动作。
    最后,我们简单了解一下java中的异常类,java.lang.Throwable类为父类,有Error子类和Exception子类,Exception类有RuntimeException子类和其他子类。RuntimeException类定义为运行时异常类,Exception类的其他子类定义为受检查异常类。运行时异常类是指因设计或实现方式不当导致的问题,也可以说是程序员的原因导致的问题,本来是可以避免发生的情况。包括算法错误,空指针异常,数组下标越界,非法强制转换类型等。
    这里谢谢大家对本文的阅览。本文参考清华大学出版社《高级程序设计语言》,只是学习提高,无任何商业目的。
  
         
 
上一篇: Android之BroadcastReceiver组件 下一篇: 没有下一篇了!
发表评论
用户名: 匿名