编写一个程序,从键盘上输入三角形的三条边,计算其面积,考虑如何捕获运行时异常ArithmeticException。
时间: 2024-12-10 08:28:33 浏览: 28
java异常大全.pdf
当你编写一个程序来计算三角形的面积时,通常需要用户输入三角形的三边长度,然后应用海伦公式(Heron's formula)。然而,为了处理可能出现的非法输入,比如负数或非数字字符,你需要添加适当的错误检查和异常处理。下面是一个简单的Java示例,它会使用try-catch块来捕获`ArithmeticException`:
```java
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.println("请输入三角形的第一条边长:");
double a = scanner.nextDouble();
System.out.println("请输入三角形的第二条边长:");
double b = scanner.nextDouble();
System.out.println("请输入三角形的第三条边长:");
double c = scanner.nextDouble();
// 检查是否满足构成三角形的条件(任意两边之和大于第三边)
if (a + b > c && a + c > b && b + c > a) {
double s = (a + b + c) / 2; // 半周长
double area = Math.sqrt(s * (s - a) * (s - b) * (s - c)); // 海伦公式计算面积
System.out.printf("三角形的面积是: %.2f", area);
} else {
throw new ArithmeticException("输入的边长无法构成三角形!");
}
} catch (ArithmeticException e) {
System.err.println("发生了算术异常: " + e.getMessage());
} finally {
scanner.close(); // 关闭扫描器资源
}
}
}
```
在这个例子中,如果用户输入了不能构成三角形的边长(例如,一条边等于另外两条边之和),`Math.sqrt()`函数会抛出`ArithmeticException`,因为结果将是负数。我们捕获这个异常并打印友好的错误信息。
阅读全文