- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 Java例外处的理
第5章 Java例外处理 ;5.1 异常的基本概念 ; ⑤ 算术运算错 (数的溢出,被零除…)
⑥ 数组下标越界
……
当Java程序出现以上的错误时,就会在所处的方法中产生一个异常对象。这个异常对象包括错误的类型,错误出现时程序的运行状态以及对该错误的详细描述。下面我们先看一个简单的例子。
;例5.1
public class ExceptionDemo {
public static void main(String args[]) {
int x=100;
System.out.println(The result is+x/10);
System.out.println(Divided by zero: +x/0); } } ;当我们对其编译后运行时,其对应的结果如下:
c:\jbuilder3\java\binjava Exception Demo
The result is10
Exception in thread main java.lang.Arithmetic Exception: / by zero
at Exception Demo.main(Exception Demo.java:5)
其意思是说,本程序执行到语句“System.out.println (Divided by zero: +x/0)”时,系统会抛出一???例外,该例外在Java中定义为Arithmetic Exception (即属于算术运算例外)。 ;5.2 异常的处理机制; (2) 当程序出现错误时,采用捕捉-抛出(catch-throw)的面向对象编程方式。该种方式是当程序运行出错时,系统和程序抛出各种标准类型的错误,程序捕捉该错误并进行相应处理。由于异常均以标准的形式提供,使得程序员能以统一的方式对异常进行处理。
通常,Java的出错与异常处理采用“try, catch, throws”语句来实现,下面我们分别加以介绍。
;5.2.1 异常的直接捕获与处理:try-catch
try-catch语句构成Java对异常直接处理的基本处理单元,其一般语法如下:
try { program where
… errors may arise
} catch (ExceptionClass1 c) {
what to do with it
} catch (ExceptionClass2 d) {
what to do with it }
; 上述用法中,可能出现异常的语句放在由try语句所括住的程序块中。try块管理其所包含的语句并定义与之相关的异常指针范围,它的后面必须至少接一个catch语句。catch语句块负责处理各对应类型的异常。
实际编程过程中,如果我们对程序代码可能出现的异常不进行捕获,Java的编译环境就拒绝执行,并要求用户对其作出处理。看下例:
; 例5.2
import java.io.*;
public class ExceptionDemo1 {
public static void main(String args[]) {
int i;
FileInputStream fis=new FileInputStream(file_in.txt);
;FileOutputStream fos=new FileOutputStream(file_out.txt);
while(i=fis.read())!=-1)
fos.write(i);
fis.close();
fos.close(); } }
例5.2只是一个简单的文件输入/输出程序。该程序中定义了一个文件输入流和文件输出流,然后通过它们进行文件的拷贝。 ;当上述程序进行编译的时候,结果如下:
c:\JBUILD~1\java\binjavac ExceptionDemo1.java
ExceptionDemo1.java:5: Exception java.io.FileNotFoundException must be caught,
or it m
文档评论(0)