Java4.设计一个程序,根据三角形的三边求三角形面积。要求自定义一个异常类IllegaException,在求面积的方法area()中声明抛出这个异常类型,当从键盘输入三条边的数据不能构成三角形时抛出异常。
时间: 2024-02-18 20:59:55 浏览: 85
以下是一个根据三角形的三边求三角形面积并抛出自定义异常的Java程序:
```
import java.util.Scanner;
class IllegaException extends Exception {
public IllegaException(String msg) {
super(msg);
}
}
class Triangle {
private double a;
private double b;
private double c;
public Triangle(double a, double b, double c) throws IllegaException {
if (a + b <= c || a + c <= b || b + c <= a) {
throw new IllegaException("无法构成三角形!");
}
this.a = a;
this.b = b;
this.c = c;
}
public double area() {
double p = (a + b + c) / 2;
return Math.sqrt(p * (p - a) * (p - b) * (p - c));
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入三角形的第一条边:");
double a = scanner.nextDouble();
System.out.print("请输入三角形的第二条边:");
double b = scanner.nextDouble();
System.out.print("请输入三角形的第三条边:");
double c = scanner.nextDouble();
Triangle triangle = new Triangle(a, b, c);
System.out.println("面积为:" + triangle.area());
} catch (IllegaException e) {
System.out.println("输入的三边无法构成三角形!");
System.out.println("异常信息:" + e.getMessage());
} catch (Exception e) {
System.out.println("输入数据不合法!");
}
}
}
```
在上面的程序中,定义了一个自定义异常类`IllegaException`,并在构造函数中调用了父类的构造函数来设置异常信息。`Triangle`类的构造函数中判断了输入的三边是否能够构成三角形,如果不能,则抛出`IllegaException`异常。`Triangle`类中的`area`方法用于计算三角形的面积。在`Main`类中从键盘输入三条边的数据,并在`try-catch`语句块中调用`Triangle`类的构造函数和`area`方法来计算三角形的面积,同时捕获可能抛出的自定义异常和其他异常。
阅读全文