2.在三角形中,任意两边之和总大于第三边,三角形类Tirangle必须遵守这一规则。请同学们自定义一个异常类IllegalTriangleException,继承Exception。修改Triangle类,重新定义为TriangleWithException类。 调用TriangleWithException类的构造方法,如果创建的三角形的违反了规则,抛出一个IllegalTriangleException异常。
时间: 2024-02-25 15:58:48 浏览: 224
好的,以下是符合要求的TriangleWithException类和IllegalTriangleException异常类:
```java
public class TriangleWithException {
private double side1;
private double side2;
private double side3;
public TriangleWithException(double side1, double side2, double side3) throws IllegalTriangleException {
if (side1 + side2 <= side3 || side1 + side3 <= side2 || side2 + side3 <= side1) {
throw new IllegalTriangleException("Invalid triangle sides: " + side1 + ", " + side2 + ", " + side3);
}
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public double getArea() {
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
public double getPerimeter() {
return side1 + side2 + side3;
}
@Override
public String toString() {
return "Triangle: side1 = " + side1 + ", side2 = " + side2 + ", side3 = " + side3;
}
}
public class IllegalTriangleException extends Exception {
public IllegalTriangleException(String message) {
super(message);
}
}
```
在TriangleWithException类的构造方法中,如果输入的三角形边长不符合规则,则抛出IllegalTriangleException异常。
这里使用了Java中自带的Exception类作为父类,通过super关键字调用父类的构造方法来创建异常对象。其中,IllegalTriangleException类只有一个构造方法,用于初始化异常信息。
在使用TriangleWithException类时,可以通过try-catch语句来捕获可能抛出的IllegalTriangleException异常,从而进行异常处理。
阅读全文