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

为什么这段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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Java与Hbase相关问题
  • ¥20 bash代码推送不上去 git fetch origin master #失败了
  • ¥15 LOL外服加入了反作弊系统,现在游戏录像rofl文件离线都无法打开
  • ¥45 工程软件单片机设计课题要求
  • ¥15 在centos7安装conda
  • ¥15 c#调用yolo3 dll文件获取的数据对不上
  • ¥20 WPF 如何实现多语言,label 和cs(live Charts)中是否都能翻译
  • ¥15 STM32F103上电短路问题
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
  • ¥15 (标签-python|关键词-char)