欢迎来到天天文库
浏览记录
ID:21970460
大小:74.00 KB
页数:7页
时间:2018-10-26
《java语言的异常处理机制研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Java语言的异常处理机制研究摘要异常是用来处理程序错误的有效机制。本文通过对Java语言异常处理机制的分析,结合实例,对这-•处理程序错误的有效方式和设计原则进行了探讨。关键词Java;异常;异常处理机制1引言程序执行吋经常会山现除零溢出、数组越界等运行错误,影响程序的正常执行。错误及异常是不可避免的,一个好的应用程序,在满足用户要求的各种功能的同时,还应具备能预见程序执行过程中可能产生的各种异常的能力,并能为异常情况给予恰当处理。在Java语言中,这种技水就是异常处理(ExceptionHandling)。Java语言通过妞向对象的异常处理机制来解决运行期间的错误,可以预防错误的程序代
2、码或系统错误所造成的不可预期的结果发生。减少编程人员的工作,增加了程序的灵活性,增加程序的可读性和健壮性[1]。本文结合实例,对Java语言屮的异常处理机制及异常设计原则进行了探讨。2Java的异常处理机制Java通过而叫对象的方法来处理异常。把各种异常进行分类,并提供了良好的接口。在一个方法的运行过程中,如果发生了异常,则这个方法生成代表该异常的一个对象,并把它交给运行吋系统。运行吋系统寻找相应的代码来处理这一异常。2.1Java中的异常类面向对象的Java语言把异常封装到类里。Java异常类层次结构如图1所示。Java异常是对象或类的实例,所有异常类的基类是Throwable类。Jav
3、a将异常分为Error和Exception两大类。Error类描述了Java运行系统中的内部错误、死循环或内存溢出等类似情况,称之为致命性错误。只能在编程阶段解决,运行时程序本身无法解决。只能靠其它程序干预,所以应用程序不应该抛出这类异常[21。程序设计屮关注的是Exception类。它有三个子类,RuntimeException、IOException和其它异常子类,包括用P自定义异常。图1Java异常类层次结构RimtimeExceptkm类型的异常是由编程导致的错误,和Error—样,如果在程序运行时产生,只能找出程序中的错误加以修改。Exception的其它子类必须在程序中进行处理
4、,否则不能通过编译。本文研究的正是这类异常。2.2java异常处理方法Java程序设计中,采用trycatchfinally语句结构和主动抛岀异常语句throw等方法来实现。通过try……catch……finally语句可以捕获一个或多个异常,其基本格式是:try{语句体)catch(异常错误类型变量名){语句体}finally{语句体}上面语句中的异常对象是在Java运行吋由系统抛岀的。还可以使用throw语句明确抛出一个异常,其基本格式是:throw异常对象2.2.1创建和捕获异常对异常进行处理时,将引起异常的语句添加到最近的try语句中,由catch进行识别和处理。如果异常发生时能确
5、保有一段代码被执行,则应该使用finally子句。请参看例1。例1classMyExOl{publicintdivide(intx,inty)returnx/y;classExTestOl{publicstaticvoidmain(String[]args){try{intresult=newMyEx01().divide(3,0);System.out.println("result="+result);}catch(Exceptione){System.out.printlnC•发生异常,异常类型为:M+e.getMessage());}finally{System.out.print
6、ln(“finally语句被执行”);)例1主动产生一个被0除的异常,然后用catch语句捕获。被0除异常是一种ArithmeticException类的异常,通过getMessage()方法显示出具体类型,而finally诏句最终也被执行。2.2.2自定义异•常及抛出异常在Java编程的过程屮,可以抛出类库屮的异常或自定义的异常。Java程序在运行时如果引发了一个可识别的错误,就会产生一个与该错误相对应的异常,这个过程被称为异常的抛出。根据异常类的不同,抛出异常的方法也不同。1)系统自动抛出的异常所有的系统定义的运行异常都是由系统自动抛出。如例1,由于错误地以0为除数,运行过程中将引发A
7、rithmeticException;这个异常类是系统预先定义好的类,对应于系统可识别的错误,所以Java虚拟机遇到这种错误就会自动中止程序的流程,并新建一个2)语句抛出的异常而必须借助于throw语句来记义何种^常类的新对象。请参看例2。例2classMyExO2extendsExceptionpublicMyExO2(){super("字符串太短");}publicvoidsomeMethod(Strings)thr
此文档下载收益归作者所有