第11章Java异常处理.pptVIP

  • 7
  • 0
  • 约8.39千字
  • 约 28页
  • 2018-05-04 发布于四川
  • 举报
第11章 Java异常处理 无论程序设计的如何巧妙,一旦达到一定的复杂程度难免会出现错误。即使是简单的程序也难以避免。程序运行出错往往是没有预料到这种情况,不知道如何处理。如果是经常出错、不健壮的程序是没有人愿意使用的。甚至有的程序由于没有预料的某种错误造成对运行环境的影响,甚至造成对计算机系统的影响更是让人难以忍受。程序在运行中出现的难以预料的错误称为异常(Exception)。Java的异常处理机制就是尽最大努力,提供一套机制保证程序在编写中方便的处理异常,使程序在运行阶段顺利处理异常,从而使程序稳定、可靠地运行且不损伤运行系统。 本章将讲解如何合理地处理异常来编写程序、异常处理的语法结构,如何实现捕捉所有异常,以及很关键且极具威力的finally子句。总之通过本章的学习,读者应该养成良好的编写程序的习惯,尽力在程序的编写中处理可能出现的异常,使程序更健壮。但是异常处理也不是包治百病的良药,它仅保证程序出错的机会尽量减少,所以依然要求程序员严谨的程序设计,实现缜密的程序逻辑。 11.1 理解异常 异常指意外发生的事情。异常的发生使程序不能继续执行。甚至在编译期程序无法完成编译,如程序员的语法错误就是一种异常事件,这种异常是Java的默认异常,这类异常也称为编译期异常,这点将在后面讲解。当然不是所有异常在编译期都能得到处理,有的异常只有等到程序运行起来才会发现,如用户点击一个按钮,调用一个对象执行网络链接,但是由于不可预知的原因造成该对象没有初始化,所以程序在这一点就无法继续执行,必须处理这个运行期出现的异常问题。 讲到这里读者会发现,异常涉及几个关键元素,分别是异常发生地点、异常类型、异常处理地点和异常处理函数。异常一旦发生,程序无法继续执行下去,程序必须知道在哪个地点、什么方法或一段代码可以处理发生某种类型的异常,也就是有处理该类型异常的代码段。直到该异常得到处理。 11.2 异常示例 为了给读者一个直观的认识,在11.1节介绍的异常概念的基础上,给出一个运行期异常的例子。该程序中有除0错误,即两个整数相除,分母为0异常,观察编译器的行为和执行该程序的结果。代码除0异常示例程序所示。 代码 除0异常示例程序 1 public class ZeroException{ 2 private int i = 10; 3 private int j = 0; 4 private int r; 5 private void getResult(){ 6 r = i/j; 7 System.out.println(i/j 的计算结果是:+r); 8 } 9 public static void main(String[] args){ 10 new ZeroException().getResult(); 11 } 12 } 11.3 Java异常处理 Java是面向对象的语言,所以在Java语言中万物皆对象、处处皆对象。在异常处理中,所谓的异常在Java程序中就是一个异常对象。而该对象可以是系统定义好的类对象,也可以是程序员自己定义的异常类对象。总之这些异常都是对象。 在发生异常时,JVM会引发一系列行为。首先正如产生普通对象那样在heap上创建一个异常对象,而该对象就是某个异常类的实例,该类是Java类库或程序员已经定义好的,每一种异常类对应一种情况的异常类型,类中可以包含该异常错误的相关信息和处理异常的方法等内容,所以对于程序抛出的异常对象总有一个异常类与之对象。一旦异常抛出,程序停止当前的执行代码,接着抛出那个异常对象的引用,异常处理代码会接手该异常对象,如果找到处理该异常类型的代码,则处理异常,否则程序将继续把该异常抛向更外层的环境去处理,如果不能处理则最终交给操作系统,从而终止该程序的运行。 对于异常处理Java提供了一定的语法结构。保证工作区段发生异常能够被捕获,并得到适当地处理。 11.3.1 try区块 Java的异常机制把工作代码和异常处理代码分割开,使程序结构清晰。工作代码集中于用户需要解决的问题,而异常处理代码则集中处理发生的异常事件。Try区块就是放置可能产生异常的工作代码的区域。该区域也称为“警戒区”,意思是这里面的程序代码可能发生问题,一旦发发生问题则必须有相应的处理措施。使用try关键字设置代码警戒区很简介,就是将工作代码放在try关键字后一个花括号{}内,如下所示。 1 try{ 2 //可能产生异常的代码1; 3 //可能产生异常的代码2; 4 } 11.3.2 catch区块 catch区块是处理发生的异常。一旦程序发生异常则抛出该异常对象,则在异常处理函数处得到处理,这个异常处理函数就是紧跟在try区块后的catch区块。其语法格式如下所示。 1

文档评论(0)

1亿VIP精品文档

相关文档