Давайте рассмотрим правильное решение, предоставленное в задаче. Если брать пример из лекции применительно к задаче: Первый вариант: С первым вариантом все понятно, там нормальный, понятный относительный путь "projects\\note.txt". Второй вариант: Во втором варианте тоже нормальный относительный путь "..\\..", просто так сказать "обратный", и его задача тоже принимает за нормальный ответ. Третий вариант: Третий вариант, когда корни путей разные, как раз таки и понимается в условиях под " В противном случае выводить ничего не нужно". Для этого сделан блок try, если в путях разные корни, то метод relativize выкинет исключение и в этом случае не надо ничего выводить, с этим тоже все понятно... Но для чего делать второй блок try и в нем менять местами пути? Ведь корни то все равно останутся разными, и выкинет то же самое исключение. Или я недопонял?