设计一个程序,根据三角形的三边求三角形的面积。要求自定义一个异常类IllegaException,在求面积的方法area()中声明抛出这个异常类型,当从键盘输入三条边的数据不能构成三角形时抛出异常。
时间: 2024-05-01 08:18:08 浏览: 92
好的,您的问题是如何根据三角形的三边求三角形的面积,并在求面积的方法中声明抛出自定义异常类IllegaException,以处理当输入的三条边的数据不能构成三角形时的情况。
以下是一个示例代码,可以实现您的要求:
```
import java.util.Scanner;
public class Triangle {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入三角形的三条边长:");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
try {
double area = getArea(side1, side2, side3);
System.out.println("三角形的面积为:" + area);
} catch (IllegaException e) {
System.out.println(e.getMessage());
}
}
public static double getArea(double side1, double side2, double side3) throws IllegaException {
if (side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1) {
throw new IllegaException("输入的边长不能构成三角形!");
}
double p = (side1 + side2 + side3) / 2;
double area = Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
return area;
}
}
class IllegaException extends Exception {
public IllegaException(String message) {
super(message);
}
}
```
在上面的代码中,我们首先从键盘读取三角形的三条边长,并通过try-catch语句捕获可能抛出的IllegaException异常。然后,我们调用getArea方法计算三角形的面积。在该方法中,我们首先检查输入的三条边长是否能够构成三角形,如果不能,则抛出自定义异常类IllegaException,否则计算三角形的面积并返回。
当输入的三条边长不能构成三角形时,抛出的异常信息为:"输入的边长不能构成三角形!"。
希望这个程序可以满足您的需要。如果您有任何问题,请随时提出。
阅读全文