课堂练习--自定义异常--三角形面积计算

三角形面积计算,自定义异常类


自定义异常类TriangleException

public class TriangleException extends Exception{
    String message;
    //构造方法
    public TriangleException(){

    }
    //构造方法,传入一个参数,继承父类构造
    public TriangleException(String message){
        this.message=message;
    }
    //构造方法,传入两个参数,继承父类构造
    public TriangleException(String message,Exception  n){
        super(message,n);
    }
    //覆盖toString方法
    public String toString(){
        return message;
    }
}

三角形类Triangle面积计算

package homework;
import java.util.Scanner;
public class Triangle {
    //三角形三边长
    int a,b,c;
    //构造方法传入三边长
    public Triangle(int a,int b,int c){
        this.a=a;
        this.b=b;
        this.c=c;
    }
    //判断三边长是否大于0
    public boolean check1()throws TriangleException{
        //判断边长,抛出自定义异常
        if(!(a>0&&b>0&&c>0)){
            throw new TriangleException("边长小于0,参数无效异常");
        }
        return true;
    }
    //判断能否构成三角形
    public boolean check2()throws TriangleException{
        boolean x,y,z;
        x=a+b-c>0;
        y=a+c-b>0;
        z=b+c-a>0;
        if(!(x&&y&&z)){
            throw new TriangleException("无法构成三角形异常!");
        }
        if((a==b)||(a==c)||(b==c)){
            System.out.println("这是等腰三角形!");
            if((a==b)&&(b==c)){
                System.out.println("也是等边三角形!");
            }
        }
        int a1=a*a,b1=b*b,c1=c*c;
        if((a1+b1==c1)||(a1+c1==b1)||(b1+c1==a1)){
            System.out.println("这个三角形是直角三角形!");
        }
        return true;
    }
    //面积计算
    public void area(){
        boolean t1=false;
        boolean t2=false;
        double p,s;
        try {
            t1=check1();
            t2=check2();
        }catch(TriangleException e){
          System.out.println("自定义异常:  "+e.toString());
        }
        if(t1&&t2){
            p=(a+b+c)/2;
            s=Math.sqrt((p*(p-a)*(p-b)*(p-c)));
            System.out.println("三角形面积为:"+s);
        }
    }

    //主方法
    public static void main(String[] args) {
        int a,b,c;
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入三个数:");
        a=scanner.nextInt();
        b=scanner.nextInt();
        c=scanner.nextInt();

        Triangle tri=new Triangle(a,b,c);
        tri.area();
    }
}

测试结果

请输入三个数:
3
4
5
这个三角形是直角三角形!
三角形面积为:6.0


请输入三个数:
3 3 3
这是等腰三角形!
也是等边三角形!
三角形面积为:2.0

请输入三个数:
0 9 7
自定义异常:  边长小于0,参数无效异常
边长小于0,参数无效异常
	at homework.Triangle.check1(Triangle.java:16)
	at homework.Triangle.area(Triangle.java:47)
	at homework.Triangle.main(Triangle.java:70)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值