马克7758 2020-05-16 11:44 采纳率: 25%
浏览 190

为什么这段Java代码捕捉不到自定义的一个异常?

Java:为什么捕捉不到自定义异常?

-__

//TriangleException.java
import java.util.Scanner;

class Triangle{
    int x,y,z;
    public Triangle(int x,int y,int z){
        this.x = x;
        this.y = y;
        this.z = z;
    }
    public double getArea(){   //求三角形面积
        double area = 0;
        double p = (x+y+z)/2.0;
        area = Math.sqrt(p*(p-x)*(p-y)*(p-z));
        return area;
    }
    public void showInfo(){ // 显示三角形边长
        System.out.println("边长分别为:"+x+","+y+","+z);
    }
}

class NoTriangleException extends Exception{
    NoTriangleException(){};
    NoTriangleException(String s){
        super(s);
    }
}

public class TriangleException{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入三边长:");
        try{
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            int z = scanner.nextInt();
            if(x+y<=z||x+z<=y||y+z<=x){
                throw new NoTriangleException("不能构成三角形!");
            }
            else{
                Triangle triangle = new Triangle(x,y,z);
                double area = triangle.getArea();
                System.out.println("三角形面积是"+area);
                triangle.showInfo();
            }
        }
        catch(NoTriangleException e){
                System.out.println(e.getMessage());
        }
    }
}

当输入符合三角形边长,可以正常运行;但是不符合的时候没有捕获输出“不能构成三角形!”。

初学异常处理,没发现问题在哪,求问大神/

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2020-09-23 13:44
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况