题目:自定义异常类TriangleException表示三条边无法构成三角形的异常。在主方法中,输入三个整数,如果能构成三角形则求其周长和面积;如果无法构成三角形则抛出TriangleException异常,输出信息“输入的三条边不能构成三角形”
构建三角形类
package chapter4;
public class Triangle {
int a,b,c;
Triangle(int a,int b,int c){
this.a=a;
this.b=b;
this.c=c;
}
double getArea() {
double p=(a+b+c)/2.0;
double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return area;
}
double getCircum() {
return a+b+c;
}
}
构建异常类
package chapter4;
class TriangleException extends Exception {
TriangleException(){
super("输入的三条边不能构成三角形!");
}
}
测试类
package chapter4;
import java.util.Scanner;
public class TriangleTest {
public static void main(String[] args) {
int a,b,c;
Scanner in=new Scanner(System.in);
System.out.println("输入三角形边长:");
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
try{
if(a+b<=c||a+c<=b||b+c<=a)
throw new TriangleException();
else if(Math.abs(a-b)>=c||Math.abs(a-c)>=b||Math.abs(b-c)>=a)
throw new TriangleException();// TODO 自动生成的方法存根
else {
Triangle t = new Triangle(a, b, c);
System.out.println("三角形面积为"+t.getArea());
System.out.println("三角形周长为"+t.getCircum());
}
}catch(TriangleException e) {
System.out.println(e.getMessage());
}
}
}