раньше я прям внутри конструктора кидал throw и ни как его не ловил. ну типа все хреново, иди ищи проблему. но теперь вдруг появился кейс, при котором вырожденные отрезки стали появляться и как-то в лом стало перед вызовом конструктора проверять. вот такой фабричный метод - отличный вариант. я его юзаю там, где генерация вырожденных отрезков вероятна. во всех остальных случаях создаю отрезки напрямую через конструктор и в случае чего он выскажет мне все напрямую ))