当前位置:首页 > 开发 > 编程语言 > Java > 正文

java的异常处理机制

发表于: 2014-04-07   作者:天子之骄   来源:转载   浏览:
摘要:                       一.什么是异常;             二.什么是异常处理;  

          
   
         一.什么是异常;   
         二.什么是异常处理;
         三.异常在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类的其他子类定义为受检查异常类。运行时异常类是指因设计或实现方式不当导致的问题,也可以说是程序员的原因导致的问题,本来是可以避免发生的情况。包括算法错误,空指针异常,数组下标越界,非法强制转换类型等。


       这里谢谢大家对本文的阅览。本文参考清华大学出版社《高级程序设计语言》,只是学习提高,无任何商业目的。
  
         
 

 

java的异常处理机制

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
http://www.cnblogs.com/with-wang/archive/2012/03/24/java_doc_6.html 本文从Java异常最基本的概
1.异常的分类 The Error hierarchy describes internal errors and resource exhaustion inside the
一、 异常的概念和Java异常体系结构 异常是程序运行过程中出现的错误。本文主要讲授的是Java语言的
本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对
异常处理: java中的异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字。其中,
本文从Java异常最基本的概念、语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对
看了这篇文档。没有练习。异常得在之后的实际操作一点点深入理解吧。 Java程序员从笨鸟到菜鸟之(十
转自 http://blog.csdn.net/hguisu/article/details/6155636 1. 引子 try…catch…finally恐怕是大
java中的异常处理机制 异常机制已经成为判断一门编程语言是否成熟的标准,异常机制可以使程序中异常
异常机制已经成为判断一门编程语言是否成熟的标准,异常机制可以使程序中异常处理代码和正常业务代
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号