Как мне сделать объект TriangleWithException? - PullRequest
0 голосов
/ 30 апреля 2020

Я делаю здесь домашнюю работу. Вот мой код до сих пор. Я создал класс Triangle, класс GeometricObject и класс IllegialTriangleException. Домашнее задание говорит о создании объекта TriangleWithException, передавая значения 1,5, 2 и 3 конструктору, и другой объект со значениями 1, 2 и 3. Вот мой код:

public class Triangle extends GeometricObject {
    private double side1;
    private double side2;
    private double side3;

    public Triangle() {
        this.side1 = 1;
        this.side2 = 1;
        this.side3 = 1;
    }

    public double getArea() {
        return (side1 + side2 + side3) / 2;
    }

    public double getPerimeter() {
        return side1 + side2 + side3;
    }
    public double getSide1(){
        return side1;
    }
    public double getSide2(){
        return side2;
    }
    public double getSide3(){
        return side3;
    }
    public void setSide1() {
        this.side1 = side1;
    }
    public void setSide2() {
        this.side2 = side2;
    }
    public void setSide3() {
        this.side3 = side3;
    }
    public String toString() {
        return "Triangle: Side 1 = " + side1 + " Side 2 = " + side2 + " Side 3 = " + side3;
    }
}
class IllegalTriangleException extends Exception {
    private double side = 1.0;
    public IllegalTriangleException(double side) {
        super(side + " is larger than other two combined");
    }
    public double getSide1() {
        return side;
    }
}
public class GeometricObject {
    private String color = "White";
    private boolean filled;
    private java.util.Date dateCreated;

    public GeometricObject() {
        dateCreated = new java.util.Date();
    }

    public GeometricObject(String color, boolean filled) {
        dateCreated = new java.util.Date();
        this.color = color;
        this.filled = filled;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public boolean isFilled() {
        return filled;
    }

    public void setFilled(boolean filled) {
        this.filled = filled;
    }

    public java.util.Date getDateCreated() {
        return dateCreated;
    }
    public String toString() {
        return "Created on " + dateCreated + "\n color: " + color + " and filled ";
    }
}

Может кто-нибудь помочь мне здесь? Убедитесь, что он попытался поймать блоки.

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны дать Конструктору вашего нового класса возможность выбросить ваше исключение. Просто укажите стороны в качестве параметра, и вы можете проверить его с помощью If и выбросить свое исключение, если это необходимо.

public TriangleWithException(double side1, double side2, double side3) throws IllegalTriangleException {
      if (side1 > side2 + side3){
         throw new IllegalTriangleException(side1)
      }
      // Add if's for other sides

      this.side1 = side1;
      this.side2 = side2;
      this.side3 = side3;
    }

Ваш основной файл может содержать следующий код:

try{
    TriangleWithException triangle1 = new TriangleWithException(1.0,2.0,3.0);
} catch (Exception e){
     // Your triangle is invalid
}
...