1.要求输入一个直角三角形,否则显示异常。描述如下: (1) RightTriangle 类:包括变量 a , b , c ,表示三边长;还包括方法 setSide ,其作用是判断三边是否满足直角三角形的条件,首先 a , b , c 为负数则抛出 IllegalArgumentException 异常,再次,两边之和小于第三边,或者不满足勾股定理,则会抛出 RightAngleException 异常, RightAngleException 会分别对两种情况进行处理。其中 IllegalArgumentException 是系统提供的异常, RightAngleException 是自定义的异常。 (2) RightAngleException 类:包括字符串变量 s ,表示异常的两种情况:构造方法对 s 进行初始化:还包括 warnMessage 方法显示 s 。 (3) Test 主类:键盘输入 a , b , c ,然后调用 setSide 方法进行测试。捕获三种异常:第一是 InputMismatchException ,显示键盘输入非数字的异常:第二是 IllegalArgumentException ,显示输入了负数的异常;第三是 RightAngleException ,用 warnMessage 显示不满足直角三角形条件的异常
时间: 2024-03-17 07:43:11 浏览: 58
好的,下面是实现该功能的 Java 代码:
RightTriangle.java 文件:
```java
public class RightTriangle {
private double a, b, c;
public void setSide(double a, double b, double c) throws RightAngleException, IllegalArgumentException {
if (a < 0 || b < 0 || c < 0) {
throw new IllegalArgumentException("边长不能为负数!");
}
if (a + b <= c || a + c <= b || b + c <= a) {
throw new RightAngleException("三边长不能构成三角形!");
}
if (a * a + b * b != c * c && a * a + c * c != b * b && b * b + c * c != a * a) {
throw new RightAngleException("三边长不满足勾股定理!");
}
this.a = a;
this.b = b;
this.c = c;
System.out.println("输入的三角形边长 a=" + a + ", b=" + b + ", c=" + c + " 符合直角三角形的条件!");
}
}
```
RightAngleException.java 文件:
```java
public class RightAngleException extends Exception {
private String s;
public RightAngleException(String s) {
this.s = s;
}
public void warnMessage() {
System.out.println(s);
}
}
```
Test.java 文件:
```java
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入三角形的三边长:");
try {
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
RightTriangle rightTriangle = new RightTriangle();
rightTriangle.setSide(a, b, c);
} catch (InputMismatchException e) {
System.out.println("输入的边长必须为数字!");
} catch (IllegalArgumentException | RightAngleException e) {
System.out.println(e.getMessage());
}
}
}
```
这个程序会先让用户输入三角形的三边长,然后调用 RightTriangle 类的 setSide 方法进行判断。如果边长为负数,就会抛出 IllegalArgumentException 异常,如果三边长不能构成三角形或不满足勾股定理,就会抛出 RightAngleException 异常,并在异常处理中使用 warnMessage 方法显示错误信息。如果输入的边长不是数字,就会抛出 InputMismatchException 异常。
阅读全文