已知从键盘输入三个数作为三角形的三边,在输入正确的情况下计算三角形的面积并输出到屏幕上,如果用户输入某边为0则抛出ZeroException异常,并输出提示the divisor is zero!,如果用户输入某边为负数,则抛出InputException,并输出提示the input number is negative error!,如果输入三个数无法构成三角形,比如两边之和大于第三边,或者两边之差小于第三边,则抛出NoTriangException异常,输出"Three numbers cannot form a triangle!"。
时间: 2024-03-20 11:44:22 浏览: 78
好的,这是一个计算三角形面积的程序,但要处理多种异常情况。下面是示例代码:
```java
import java.util.Scanner;
class ZeroException extends Exception {
public ZeroException(String message) {
super(message);
}
}
class InputException extends Exception {
public InputException(String message) {
super(message);
}
}
class NoTriangException extends Exception {
public NoTriangException(String message) {
super(message);
}
}
public class TriangleArea {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入三角形的三边:");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
if (a <= 0 || b <= 0 || c <= 0) {
throw new InputException("the input number is negative error!");
}
if (a + b <= c || a + c <= b || b + c <= a) {
throw new NoTriangException("Three numbers cannot form a triangle!");
}
double p = (a + b + c) / 2;
double area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
System.out.println("三角形的面积为:" + area);
} catch (InputException e) {
System.out.println(e.getMessage());
} catch (NoTriangException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println("发生了未知错误!");
}
}
}
```
以上代码中,我们定义了三个异常类:ZeroException 表示输入了零,InputException 表示输入了负数,NoTriangException 表示输入的三条边无法构成三角形。在 main 函数中,我们使用 try-catch 语句块捕获这些异常并进行处理。如果没有异常,则计算三角形面积并输出;如果有异常,则输出对应的提示信息。
阅读全文