Я пишу код для поиска и пересечения двух строк. Когда наклоны линий равны, они не пересекаются. Но, с другой стороны, вход со скругленными значениями вполне действителен.
public static Point calculateIntersection(Line line1, Line line2) {
if (line1 == null || line2 == null) {
throw new NullPointerException(" some message ");
}
if (line1.getConstant() == line2.getConstant()) {
return new Point(0, line1.getConstant());
}
if (line1.getSlope() == line2.getSlope()) {
throw new IllegalArgumentException("slopes are same, the lines do not intersect.");
}
int x = (line2.getConstant() - line1.getConstant()) / (line1.getSlope() - line2.getSlope());
int y = line1.getSlope() * x + line1.getConstant();
return new Point(x, y);
}
Вопрос заключается в том, чтобы исключить исключение из-за незаконных аргументов правильно? Поскольку ввод действителен, он меня не полностью убеждает.
Является ли обычное исключение правильным? Похоже на хороший выбор, но дополнительное мнение поможет.
Спасибо