概述
一、实验目的
异常处理
实验内容:
必做
异常的捕获
- 编写程序DivideExcep.java。计算两数相除并输出结果。使用两个catch子句,分别捕捉除数为0的异常和参数输入有误异常。编译并运行,当输入除数为0时,将有异常出现,当输入的不是整数时,如将30输成了3o,出现的是另一种异常。
- 编写一个程序IntegerExcep.java。从命令行输入一个字符串,将该字符串转换为double型数据,当数据不在【0,100】之间时抛出一个异常,采用适当的机制来捕获并处理异常。可以用现成的异常也可以自定义异常。
- 自定义一个三角形类Triangle.java,其中:
1)成员x,y,z作为三角形的三边长;
2)构造方法通过参数分别对x,y,z赋值;
3)两个方法getArea求面积,显示三角形信息showInfo。这两个方法中当三条边不能构成三角形要抛出自定义异常NotTriangleException,否则显示正确信息。
另一个类TestTriangle,主方法中构造一个三角形对象Tri,三条边从控制台输入,显示三角形的信息和面积,要求捕获异常。
实验解答
package ex09;
import java.util.InputMismatchException;
import java.util.Scanner;
//计算两数相除并输出结果
public class DivideExcep {
//public static void m1() {
public static void main(String[] args) {
try {
System.out.println("计算两数相除并输出结果n请输入 除数:");
Scanner s = new Scanner(System.in );
int a = s.nextInt();
System.out.println("请输入被除数:");
int b = s.nextInt();
double c = a/b;
//System.out.println(a+"/"+b+"="+c);
s.close();
}
catch(ArithmeticException e) {
System.out.println("对不起,除数不能为0!");
}
// 数字格式化异常
catch(InputMismatchException e) {
System.out.println("对不起,除法运算不能含有字母!");
//System.out.println(e);
}
}
}
package ex09;
public class IllegalNameException extends RuntimeException {
public IllegalNameException(String str) {
//String str;
super(str);
}
}
package ex09;
import java.util.Scanner;
public class IntegerExcep {
public void m1(String str) throws IllegalNameException{
double a = Double.parseDouble(str);
if(a<0||a>100) {
//异常
//创建异常对象
throw new IllegalNameException("数据超出有效范围!");
}
}
public static void main(String[] args) {
System.out.println("请输入一个【0,100】之间数 :");
Scanner s = new Scanner(System.in);
String str = null;
try {
//double a = (double)(s.next());
str = s.next();
//double a = (double) str;
// 将String类型转换成double类型
//Double.parseDouble(str);
IntegerExcep IE = new IntegerExcep();
IE.m1(str);
//若程序出现异常,便不会进行到这步,若无异常,即可输出
System.out.println("转换结果为:"+Double.parseDouble(str));
}catch(IllegalNameException e){
System.out.println(e.getMessage());
}finally {
s.close();
}
//程序若能运行到此处,输入肯定是合法的
}
}
package ex09;
public class NotTriangleException extends RuntimeException {
public NotTriangleException(String msg) {
super(msg);
}
}
package ex09;
import java.util.Scanner;
public class TestTriangle {
public static void main(String[] args) {
System.out.println("请输入三角形的3条边:");
Scanner s = new Scanner(System.in);
try {
double x = s.nextDouble();
double y = s.nextDouble();
double z = s.nextDouble();
if(x+y<=z||x+z<=y||z+y<=x) {
//异常,无法构成三角型;
throw new NotTriangleException("您输入的三条边无法构成三角形!");
}
Triangle Tri = new Triangle(x,y,z);
Triangle.getArea();
Triangle.showInfo();
}catch(NotTriangleException e) {
System.out.println(e.getMessage());
}finally {
s.close();
}
}
}
package ex09;
public class Triangle {
//成员x,y,z作为三角形的三边长;
static double x,y,z;
//double y;
//double z;
//构造方法通过参数分别对x,y,z赋值;
public Triangle(double x,double y,double z) {
this.x = x;
this.y = y;
this.z = z;
}
//getArea求面积
public static double getArea() throws NotTriangleException{
/*
Triangle T = new Triangle(x,y,z);
if(x+y<z||x+z<y||z+y<x) {
//异常,无法构成三角型;
throw new NotTriangleException("您输入的三条边无法构成三角形!");
}
*/
double p,Area;
p=(x+y+z)/2;
Area = Math.sqrt(p*(p-x)*(p-y)*(p-z));
return Area;
}
//showInfo显示三角形信息
public static void showInfo() throws NotTriangleException{
//Triangle.getArea();
double Area = getArea();
System.out.println("三角形的三条边分别为:"+x+" "+y+" "+z+'n'+"面积为:"+Area);
}
}
实验总结:
学习了异常的处理和异常的抛出的使用
最后
以上就是清脆煎饼为你收集整理的Java实验九的全部内容,希望文章能够帮你解决Java实验九所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复