Обработка неверных вводов в Java - PullRequest
0 голосов
/ 28 марта 2020

У меня есть класс с именем Line, и я хочу добавить метод, который вычисляет касательную к линии. Для вычисления касательной мне нужны две точки: (x1, y1) и (x2, y2), поэтому их касательная будет (y2 - y1) / (x2 - x1). Предположим, у меня есть две точки, и я хочу вычислить касательную, есть определенная ситуация, когда касательная не определена (x2 = x1), линия параллельна оси Y). Я хочу иметь возможность использовать эту функцию, и когда она получает строку, которая не имеет касательной, программа не взломает sh и просто выдаст ошибку. Как мне это сделать?

Это функция (она находится в классе с именем Line):

double getTangent() {
    // defined only if the line is not perpendicular to the horizontal axis.
    return (this.end.getY() - this.start.getY()) / (this.end.getX() - this.start.getX());
}

1 Ответ

1 голос
/ 28 марта 2020

Это приемлемо?

double getTangent() {
    if (this.end.getY() == this.start.getY()) {
        return 0;  // line is parallel to x-axis
    }
    else if (this.end.getX() == this.start.getX()) {
        return Double.NaN; // line is parallel to y-axis, i.e. undefined
    }
    else {
        return (this.end.getY() - this.start.getY()) / (this.end.getX() - this.start.getX());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...