文档库 最新最全的文档下载
当前位置:文档库 › 异常处理机制

异常处理机制

西安邮电大学

(计算机学院)

课内实验报告

实验名称:异常处理的机制

专业名称:网络工程

班级:1203班

学生姓名:朱磊

学号(8位):04122079

指导教师:张荣

实验日期:2014年5月21日-2014年5月21日

一. 实验目的及实验环境

1.实验目的:了解异常与错误的区别,知道运行异常与非运行异常的区别及处理条件,学会使用异常处理机制处理程序中的异常。

2.实验环境:JDK java虚拟机Eclipse下进行实验。

二. 实验内容

1.简述异常处理机制。

2.自定义异常类解决程序运行中的异常。

3.程序判断题学会Finally语句的作用范围。

三.方案设计

1.简述异常处理的机制

异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。

2.假设Sum类中有一个addContinue(int n)方法,当n>0时,方法返回1+2+···+n 的和;当n<0时,方法抛出一个受检查的ArgumentException异常。ArgumentException 类应该提供一个接受并保存n值得构造方法,以及一个能返回n值得实例方法。现定义一个Sum类和一个ArgumentException类,并编程测试它们。

程序如下:

import java.util.Scanner;

class ArgumentException extends Exception{

private int m;

public ArgumentException(int m){

this.m=m;

}

public int FanHui(){

return m;

}

}

public class Sum {

private int n;

private int sum1;

public void addContinue(int n){

for(int i=1;i<=n;i++)

{

sum1=sum1+i;

}

System.out.println(sum1);

}

public static void main(String[] args){

Sum a=new Sum();

System.out.println("请输入n的值:");

Scanner scan=new Scanner(System.in);

a.n=scan.nextInt();

try{

if(a.n>0)

a.addContinue(a.n);

else

throw new ArgumentException(a.n);

}catch(ArgumentException e){

System.out.println("n的值为:"+e.FanHui());

}

}

}

3.下面代码,是否会执行finaly语句

public class Test {

public static void main(String[] args){

try{

System.exit(1);

int i=10/0;

}

finally{System.out.println("finlly处理");}

}

}

运行结果:

不会执行finally语句,因为在异常出现之前执行了System.exit(1);

语句,已经跳出java虚拟机,不会执行后面的语句。

四.测试数据及运行结果

1.正常测试数据(3组)及运行结果;

对于程序2:

(1)请输入n的值:

3

6

(2)请输入n的值:

4

10

(3)请输入n的值:

6

21

2.非正常运行结果

请输入n的值:

-5

n的值为:-5

五.总结

1.实验过程中遇到的问题及解决办法;

在实验过程中出现了,一个类的方法调用另一个类中的实例变量的问题,其访问权限的限制解决,以及在抛出异常及解决异常的执行语句中出现了问题,最后通过查看课本解决了问题

2.对设计及调试过程的心得体会。

异常处理机制可以解决许多容易出现的异常问题,这样会使程序更健康的运行,不会出现c语言中数组越界而不报错的情况,有益于解决程序中出现的问题。

相关文档