实验六 Java异常处理
一.实验目的
1)掌握Java异常的概念及工作机制
2)掌握异常的分类
3)掌握抛出异常语句的使用(throw)
4)掌握抛出捕获处理异常语句的使用(try…catch…finally)
5)掌握上抛异常语句的使用(throws)
6)掌握创建自定义异常
二.实验环境
JDK1.6+Eclpise3.2
三.实验准备
1)复习课件中理论知识
2)练习课堂所讲的例子
四.实验内容
1、编写一个应用程序,要求从键盘输入一个double型的圆的半径,计算并输出其面积。测试当输入的数据不是double型数据(如字符串“abc”)会产生什么结果,怎样处理。
实验过程及结果
在string.Java中编写代码如下:
package error;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Zhu {
public static void main(String[] args)
throws IOException
{
        System.out.println("请入圆的半径:");// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try{
    System.out.println("圆的面积为:"+computeArea(Double.parseDouble(br.readLine())));
   
}catch(NumberFormatException e){
    System.out.println("您输入的不是数值,请重新输入");
   
}
}
public static double computeArea(double r){
    return Math.PIjava类的概念*r*r;
}
}
运行string.Java,其结果如下图所示
2、计算两个正数之和,当任意一个数超出范围时,抛出自己定义的异常(NumberRangeException)。
在string.Java中编写代码如下::
package area;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class two {
    public static void main(String[] args) throws  IOException {
        System.out.println("输入两个整数,(回车分割)");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int a=Integer.adLine());
int b=Integer.adLine());
try{
    System.out.println("计算结果为:"+comput(a,b));
} catch( NumberRangeException e){e.printStackTrace();}
    }
    public static int comput(int a,int b) throws NumberRangeException
    {
        if(a<0||b<0)
            {throw new NumberRangeException("数字不在指定的范围内");}
        return (a+b);
    }
}
要对下段代码进行异常处理:
运行string.Java,其结果如下图所示:
五.实验感想
在本次java异常处理实验中,异常处理是以前所没有接触过的,上课的时候听的也是懵懵懂懂,做实验时感觉有些吃力,不像以前那样轻松,就这两个题目而言,也能理解是什么意思,但做起来力不从心,一方面是,这类问题平时很少注意,另一方面是,头次接触有
些陌生,再者,异常处理也是比较难的部分。虽然说这次实验当中结果出来了,但说实话我还是没把异常处理这个概念没弄明白,既然都异常了,为啥还不处理要抛出类?不是有异常就要改吗!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。