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());
}
}
}