基于Java的异常处理机制及其应用的探讨

来源 :科技致富向导 | 被引量 : 0次 | 上传用户:feihuiy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】Java语言拥有强大的异常处理机制,正确地使用好异常处理可以增强程序的健壮性和稳定性,本文对Java异常引起的原因,对异常处理机制的三个重要环节进行了深入的探讨,最后通过一个实例来说明Java语言的异常处理的具体应用。
  【关键词】Java语言;异常处理;应用
  0.引言
  Java异常是描述在代码段中发生的运行出错情况的对象。程序中的错误可能来自于如下两个方面问题:编译错误和运行错误。编译错误是由于所编写的程序存在语法问题,未能通过由源代码到目标代码的编译过程而产生的错误,它将由Java语言的编译系统负责检测和报告;运行错误是在程序的运行过程中产生的错误。在Java语言中,提供了一种独特的处理异常的机制,通过这种异常处理机制来处理程序中出现的错误,从而提高程序的容错性,使开发出来的程序更为健壮。
  1.Java异常类的种类及引起异常的原因
  1.1 Java异常类的种类
  Java异常类的种类可分成两大类:(1)Error类:指的是Java运行环境出现的错误或系统错误,这些错误一般是很严重的错误,即使捕捉到也无法处理,由Java虚拟机生成并抛出,包括系统崩溃、动态链接失败、虚拟机错误等,在Java程序中不做处理。(2)Exception类:指一些可以被捕获且可能恢复的异常情况,是一般程序中可预知的问题。
  1.2 Java异常引起原因
  Java程序在运行过程中,可能会运行到非正常的执行状态,这些状态可能是由以下原因引起的:第一种情况:表达式的计算违反了Java 语言的规则,例如除法运算过程中被整数为0;在载入或链接Java 程序时出错;超出了某些资源限制,例如使用了太多的内存。
  第二种情况,Java 程序代码中的throw 语句被执行。第三种情况,异步异常发生。异步异常的原因可能有:(1)Thread的stop方法被调用。(2)Java虚拟机内部错误发生。
  2.Java中异常处理机制的三个重要环节
  2.1抛出异常
  抛出异常就是程序设计时当前代码中遇到了一个不知道怎么处理的情况,在程序代码中需要创建一个异常来将这个错误描述清楚,并且将这个异常抛出。异常被抛出之后面临两个路可走:首先是异常被捕捉并被处理,其次是讓方法继续抛出这个异常。
  抛出异常的方式有两种:
  (1)在方法代码中使用throw关键字来抛出实例化的异常对象。
  (2)在方法声明中使用throws关键字抛出方法代码中throw关键字抛出的异常对象。
  2.2传递异常
  异常实例在方法代码中使用throw关键字被抛出后,如果是throws关键字后面的异常类列表的某个类型的实例,则方法将继续抛出这个异常,异常继续传递给方法的调用者,直到被处理掉或到达main()方法,异常传递main()方法之后,就会被Java平台处理掉。
  2.3处理异常
  处理异常就是根据异常类型,提供不同的catch语句进行处理,Java异常处理机制会将异常类型传递给匹配的catch语句,然后catch语句就可以根据异常对象的信息,具体问题分析,进行相应的补救措施,使程序可以继续运行下去。
  Java异常处理机制采用以下三种方法来处理代码中产生的异常实例:
  (1)try...catch语句捕获并处理异常,使用try…catch语句处理异常可以分为以下两种方式:
  1)多类异常,分类处理;2)多类异常,一并处理。
  语法格式如下:
  Try{
  异常代码 //根据异常类型,提供不同的catch语句分类进行处理
  }catch(Exception1 e){
  处理方法1
  }catch(Exception2 e){
  处理方法2
  }
  1)语法核心:使用try语句标记出可能异常的代码块,使用catch语句将这些异常按匹配规则进行处理。
  2)匹配规则:异常实例的类型是catch语句的异常类型或是其子类,若一个catch语句的类型是Throwable类型,则可以用它来处理try语句块中抛出的所有异常。
  (2)try…catch…finally语句块处理异常,其中finally语句块在正常情况下都会被执行,唯一不被执行的情况是方法执行了System.exit()方法。若一个异常没有被处理掉,在抛出之前会先finally之后再被抛出,即使在catch语句中使用return来结束程序,finally执行完后才返回return。Finally语句通常用来释放程序所占用的资源,如数据库查询异常的时候,释放JDBC连接等。
  语法格式如下:
  try{
  异常代码
  }catch(Exception e){
  处理方法
  }finally{
  必须要执行的代码
  }
  (3)用throw语句处理异常,对于处理不了的异常或者要转型的异常,在方法的声明处通过throws关键字抛出异常或在代码中用throw关键字来抛出异常对象。
  语法格式如下:
  Public static void 方法名(参数)throws 异常对象
  If 语句{
  throw 异常对象;
  }
  3.Java异常处理机制在应用程序中的具体应用
  本例设计一个应用程序完成课程成绩查询与输出工作,在一个数组中存储一个学生的2门课成绩,从键盘输入要选择查询的课程代码(1~2),输出对应的课程名称和成绩。为防止用户输入输入数据时可能发生的异常情况,在程序设计时特设计了异常处理过程。   3.1应用程序主要代码
  import java.util.InputMismatchException;
  import java.util.Scanner;
  public class four {
  public static void main(String[] args){
  int[] classScore={82,87,92};//声明一个数组且初始化值
  Scanner input=new Scanner(System.in);//新建一个键盘输入对象
  System.out.println("请输入要查询的课程代码:");try{
  int i=input.nextInt(); //输入一个整数
  int result=score[i-1];
  System.out.println("课程名称\t成绩");
  if(i==201)//课程代码判断
  System.out.println("大学语文:\t");
  else if(i==202)
  System.out.println("Android应用开发:\t");
  System.out.println(result);//输出课程的成绩
  }catch(InputMismatchException e){//异常捕获及处理
  System.out.println("输入课程代码不正确!");
  }catch(ArrayIndexOutOfBoundsException e){
  System.out.println("數组下标越界!");//异常捕获及处理
  }catch(Exception e){
  System.out.println("程序产生异常,原因为:"+e);
  }finally{
  System.out.println("程序结束!");
  }
  }
  }
  3.2应用程序异常处理分析
  在这个应用程序中,程序开发人员设计了三个catch语句来对可能的异常进行处理,增强程序的健壮性。异常处理如下:
  (1)能够自动判断输入数据是不是合法的数字数据,如果不是,第一个catch语句将捕获“InputMismatchException”异常,中止程序运行,给出提示信息:“输入不正确,请检查!”。
  (2)能够自动判断输入的数据是否超出了范围,超出了范围会导致此程序中数组下标越界,第二个catch语句将捕获到“ArrayIndexOut
  OfBoundsException”异常,中止程序运行,并给出提示信息:“数组下标越界!”。
  (3)其他异常检测,本例中通过“Exception”语句,来捕获上面两种之外情况外的其他异常,如果发生了其他的异常,并给出提示信息:“程序产生异常,原因为:+e”。
  4.小结
  异常处理机制是Java语言的重要机制,正确、合理地使用异常处理可以增强程序的可靠性和健壮性。本文从“什么是异常”入手,分析了Java异常引起的原因,对异常处理机制的三个重要环节进行了较深入的探讨,最后以一个简单的应用程序为例,分析了Java语言的异常处理过程,使我们清楚到看到Java语言强大的异常处理机制。
  异常处理机制是一种安全高效的编程策略,是开发应用程序必不可少的部分,但在应用程序开发初期往往容易被忽略。 因此,做为一个合格的Java程序员来说,应该充分掌握Java语言的异常处理机制,在程序开发过程中尽可能的控制异常的发生,尽可能控制抛出大量的异常。
  【参考文献】
  [1]丁学钧,温秀梅.基于Delphi的异常处理机制及其应用研究[J].福建电脑,2005.7.
  [2]耿祥义.Java基础教程(第3版)[M].北京:清华大学出版社,2012.5.
其他文献
【摘 要】现代企业生产更加注重生产的效率,企业设备“零故障”管理对于生产效率的提高有着重要的影响。本文作者根据自己的工作实际,就企业设备“零故障”管理的特点、设备故障原因和具体管理举措进行了简单的论述。  【关键词】企业;设备;零故障;管理  近一个时期,公司领导在各种相关会议上一再倡导设备零故障管理,要求公司内凡与设备相关的人员都应转变观念,要从"设备总是要出故障的"观点转变为"不让设备产生故障
饮食和工作一样,“有的放矢”才能“事半功倍”。补充自己最需的8大营养,是白领女性必须解决的。维生素B6维生素B6是人体脂肪和糖代谢的必需物质,女性的雌激素代谢也需要维生
【摘 要】当今我国的电力营销企业获得了很好的发展,但是由于市场经济的发展,我国的很多电力营销企业都需要在管理和营销工作中加以改进和完善,但是传统的管理和营销模式也在一定的程度上阻碍了电力营销企业的发展,本文主要探讨了电力营销存在的问题与精细化策略,希望能够给电力营销企业提供一定的经验和借鉴。  【关键词】电力营销;精细化管理;电网建设  在电力营销中,我国的很多企业都面临着很多的问题,这些问题对电
熬夜?或许熬夜一族最先想到的就是喝咖啡或喝茶,的确,这两种饮品中所含有的咖啡因,会让人精神振奋。不过,提神的食物,对健康未必好。咖啡因对提升工作效率不见得有效,即使有
【摘 要】本文从生产制造角度来分析解决聚丙烯芯钢丝绳生产过程中易出现的钢丝塌陷、钢丝间隙不均及绳径超差等问题。与天然纤维芯相比,聚丙烯芯是一种合成纤维芯,除具有质轻、弹性好、不怕霉蛀等特性外,同时还具有较好的抗挤压性,因此,生产过程中,对聚丙烯芯直径公差的控制比对天然纤维芯直径公差的控制更为严格,如聚丙烯芯直径选择不当,易会出现股中钢丝塌陷(或钢丝间隙不均)、绳径超差等问题。笔者结合生产实际情况,
【摘 要】本文章阐述了一种在AutoCAD2010中由二维基本域面图形进行实体造型的简单实用的方法。上述方法使用平面图形形体分解法,分解成一个个御面图形,通过拉伸、立体造型、切割成需要的立体几何图形,最后经过合并成需要的工件。充分使用已有平面域面图形资源数据进行几何数据空间交换,避免计算机辅助设计操作员频繁改变AutoCAD用户坐标系,精简了AutoCAD建立立体模型的过程。从而使AutoCAD建
【摘 要】煤矿通风系统在提升采矿安全中发挥着重要作用,因此对其安全和稳定进行分析研究,就显得极为重要。本文对当前煤矿通风系统建设的问题进行了阐述,着重对通风系统的安全和稳定等性能进行了分析,在分析和研究的基础上,提出了提升通風系统安全性和稳定性的措施。  【关键词】煤矿;通风系统;安全;稳定  1.目前工作中存在的主要问题  1.1地区之间发展不平衡  当前地下煤矿开采存在明显的地区发展不平衡的问
如果你总是便秘,长痘,肤色暗沉那就说明你的“体内毒素”已经堆起来了,要迅速地执行体内排毒计划,才会让你的皮肤漂亮,身体健康又轻盈。1、黄瓜味甘,性平,又称青瓜、胡瓜、刺
小孩都喜欢看电视,特别是动画片,这是他们的主要娱乐方式之一。但是许多时候,父母为了怕孩子在电视前待得太久,会把电视放在比较高的位子,但是专家提醒说:这样会让孩子更容易
随着时代的发展和科学技术的不断提高,多媒体教学正在逐步走进学校、进入课堂,在幼儿园的教学中广泛地被运用。借助多媒体辅助教学手段,可以缩短教学时间,同时它不受时间和空间的