利用try catch面对三角形进行处理,若输入三角形三边数据不为数字则catch捕捉异常信息后用throw抛出信息“请输入数字”
时间: 2024-10-11 13:05:51 浏览: 31
在Java中,如果你想要处理用户输入三角形三边数据的情况,并利用try-catch-finally块来捕获非数字输入导致的异常,你可以这样做:
```java
import java.util.Scanner;
import java.util.InputMismatchException;
public class TriangleCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.println("请输入三角形的第一条边长:");
double sideA = scanner.nextDouble();
System.out.println("请输入三角形的第二条边长:");
double sideB = scanner.nextDouble();
System.out.println("请输入三角形的第三条边长:");
double sideC = scanner.nextDouble();
// 检查输入是否能构成有效的三角形
if (isValidTriangle(sideA, sideB, sideC)) {
// 进行三角形计算...
} else {
System.out.println("输入的三条边无法构成一个三角形!");
}
} catch (InputMismatchException e) {
// 输入不是数字时抛出异常
throw new IllegalArgumentException("请输入数字", e);
} finally {
// 关闭扫描器,无论是否发生异常
scanner.close();
}
}
private static boolean isValidTriangle(double a, double b, double c) {
return a + b > c && a + c > b && b + c > a;
}
}
```
在这个例子中,如果用户输入的不是数字,`scanner.nextDouble()`会抛出`InputMismatchException`。我们捕获这个异常并通过`throw new IllegalArgumentException(...)`重新抛出,同时附带原始异常信息。
阅读全文