2行の交差を見つけて交差するコードを書いています。直線の傾きが等しい場合、それらは交差しません。しかし一方で、勾配が等しい値の入力は完全に有効です。
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);
}
問題は、不正な引数の例外をスローすることですか? 入力は有効なので、完全に納得するわけではありません。
カスタム例外は正しいことですか? 良い選択のように思えますが、追加の意見が役立ちます。
ありがとう