Всем привет! Обычно, когда я ввожу некорректный путь, IDEA кидает исключение InvalidPathException. На скриншоте путь явно некорректный (для любой ОС), но ошибки нет. Подскажите, почему?
Ada
46 уровень
Почему нет исключения при создании некорректного объекта Path ?
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
АлександрExpert
16 мая 2022, 13:29решение
У тебя некорректный путь, каким образом ты это понял, ты сделал Path передал в конструктор string и попросил system вывести Path в консоль всё красиво. А вот если бы ты захотел прочитать файл по этому пути, то тогда мы они тебе сказали инвалид.
+2
Ada
17 мая 2022, 04:51
А почему в этом случае экспешн раньше выкидывается?
0
hidden #598481
17 мая 2022, 07:57решение
Ада, ну ты открой хоть аннотацию к исключению :)
Там же написано, что оно выбрасывается при наличии нелегальных символов в строке. Если там есть двоеточие, и это не индекс тома, то из строки нельзя получить путь к файлу, и выбрасывается исключение.
А если строка состоит только из валидных символов, то её можно преобразовать к пути, тогда исключения не будет. По крайней мере пока ты не попытаешься обратиться к несуществующему файлу.
+2
Ada
17 мая 2022, 08:15
Это я прочитала, но не поняла, как так выходит, то мы до момента обращению к файлу проверяем его "адекватность", то только в момент обращения. Но ты мне помог разобраться (как и Александр). Видимо, есть вещи, которые IDEA на пороге пресекает (наличие невалидных символов), а все остальные тонкости проверяются уже в момент обращения к файлу)
0
hidden #598481
17 мая 2022, 09:08
Ну всё-таки не идея, а программа в процессе выполнения.
0
Ada
17 мая 2022, 11:27
Раз уж об этом зашла речь...
Правильно ли я понимаю об области ошибок:
1) Если мы получаем ошибку во время выполнения программы, это есть ошибка в рантайме? О ней, получается, сообщает сама программа?
2) Если у нас в IDEA ерунда, которую мы пишем подчеркнута красной линией, то тут уже ошибка на этапе компиляции, и о ней уже нам сообщает IDEA?
+1
hidden #598481
17 мая 2022, 13:29решение
Да, всё верно.
Runtime (unchecked) exception и compile-time (checked) exception.
+2
Ada
17 мая 2022, 13:55
спасибо!
0