《网络编程技术》实验指导书实验三word版本

实验三:异常处理程序设计

实验目的:了解Java中异常处理(exception)的作用及常用的异常类,掌握 异常处理的设计方法。

实验要求:理解系统异常处理的机制和创建自定义异常的方法。 实验内容:

在已实现的方法中,加入出错处理异常(EXCEPTION),又称例外,是特殊

的运行错误,对应着Java语言特定的运行机制。由于Java程序是在网络环境中 运行的,安全成为需要首先考虑的首要因素之一。为了能够及时有效的处理程序 中的运行错误,Java中引入了异常和异常类。作为面向对象的语言,异常与其它 语言要素一样,是面向对象规范的一部分,是异常类的对象。

Java的异常类是处理运行是错误的特殊类,每一种异常类对应一种特定的运 行错误。所有的Java异常类都是系统类库中的Exception类的子类。Throwable

类是java.lang包中的一个类,它派生了两个子类:Exception和Error。其中Error 类由系统保留,而Exception类则供应用程序使用。

系统定义的运行异常:Exception类有若干子类,每一个子类代表了一种特定 的运行错误。这些子类有些是系统事先定义好包含在Java类库中的,称为系统 定义的运行异常。系统定义的运行异常通常对应着系统运行错误。由于这种错误 可能导致操作系统错误,甚至是整个系统的瘫痪,所以需要定义异常来特别处理。 用户自定义的异常:系统定义的异常主要用来处理系统可以预见的较常见的 运行错误,对于某个应用所特有的错误,则需要用户程序自己创建用户自定义异 常。这种用户自定义异常主要用来处理用户程序中特定的逻辑运行错误。用户自 定义异常用来处理程序中可能产生的逻辑错误,使得这种错误能够被系统及时识 别并处理。因此用户自定义异常可以使用户程序更为强健,使整个系统更加安全 稳定D

异常的抛出:Java程序在运行时如果引发了一个可识别的错误,就会产生一 个与该错误相对应的异常类的对象,这个过程被称为异常的抛出。异常的抛出根 据异常类的不同,抛出的方法也不同。所有的系统定义的异常都可以由系统自动 抛出;用户程序自定义的异常必须借助于throw语句来定义何种情况算是产生了 此种异常对应的错误,并应该抛出这个异常的新对象。

异常的处理:当一个异常被抛出时,应有专门的语句来接受这个被抛出的异 常对象,这个过程被称为捕捉异常。当一个异常类被捕捉或接收后,用户程序就 会发生跳转,系统中止当前的流程而跳转至专门的异常处理语句块,或直接跳出 当前程序和Java虚拟机回到操作系统。在Java程序里,异常处理语句的格式如 下:

try{ //用try语句来选定捕获异常的范围 }

catch{//捕获只能作输出操作 异常处理语句组 }

finally{ }

●下面的程序中定义了一个用户程序的异常InsuffivientFoundsException, 这个异常用来处理帐户资金不足的逻辑错误。

Class InsufficientFoundsException extends Exception

{

private BankAccount m-ba; private double getAmount;

InsufficientFoundsException(BankAccount ba,double dAmount) {

super(\ m-ba=ba;

getAmount=dAmount; }

public String toString() {

StringBuffer sb=new StringBuffer();

sb.append(\ sb.append(m-ba.getAccountNumber()); sb.append(\ sb.append(m-ba.Balance()); sb.append(\ sb.append(getAmount); return sb,toString(); } }

●实现异常处理

l)public class TestExcep1{

public static void main(string args[]){ int I=0;

String greeting[]={\ while(l<4){

trY{System.out.println(greeting[l]); }

catch(ArrayIndexOutofBoundsException e {

system.out.println(\越界\ I=-1

}finally{

system.out.println(\总会运行\ } I++ }} }

2)public class TestExcep2{

public static void main(String[] arg3){

System.out.println(\这是一个异常处理的例子\\n\ try{

int i=10;

i/=0; }

catch (ArithmeticException e){

System.out.println(\异常是:\ }

finally{

System.out.println(\语句被执行\ } } }

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4