![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| saneea |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Если какие-либо стандартные средства Java не могут открыть файл, то летит java.io.FileNotFoundException. Это исключение предоставляет "монолитную" строку с именем файла и причиной типо того: "F5010.dat (The system cannot find the file specified)". Мне же нужно имя проблемного файла и причину в двух разных строках, неужели для этого придется парсить эту "монолитную" строку?
Спасибо! p.s.: для сравнения, в .Net есть аналогичный System.IO.FileNotFoundException, но он предоставляет свойство FileName. Это сообщение отредактировал(а) saneea - 14.9.2011, 11:27 |
|||
|
||||
| Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: 6 Всего: 16 |
Передавайте стандартным средствам объект типа java.io.File, они его, как правило, принимают наравне со строкой. Из такого объекта можно всё получить.
|
|||
|
||||
| saneea |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Возможно я плохо объяснил, возможно я плохо понял ответ, потому что не понимаю как java.io.File может мне помочь. Я хочу чтобы было примерно так:
Т.е. по сути имеем только объект типа java.io.FileNotFoundException и больше ничего. Это сообщение отредактировал(а) saneea - 14.9.2011, 13:29 |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
|
|||
|
||||
| saneea |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
К сожалению так тоже меня не устроит, потому что "//какой-то код работающий с файлом(и)" - это код, который вызывает функцию, которая может ещё вызвать кого-то и т.д., т.е. ловить исключение мне нужно в одном месте, а кинуться оно может во многих местах, соответственно имя проблемного файла в try{} мы знать не можем. |
||||
|
|||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Наверное, логично FileNotFoundException ловить именно в том месте, где имя файла определяется. Тогда такая конструкция вполне приемлема. А в секции catch можно создать и выбросить наверх новое исключение, если требуется все исключения обрабатывать в одном месте. Можно же создать свой класс, типа MyFileNotFoundException, в котором определить все необходимые поля и методы доступа. |
|||
|
||||
| Nofate |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 266 Регистрация: 13.10.2008 Репутация: 4 Всего: 8 |
Т.е. вы хотите вызвать некоторую чужую библиотеку, которая неизвестно что делает с неизвестным вам набором файлов, и в случае экспшена в ней получить название файла?
-------------------- The future is not set, there is no fate but what we make for ourselves. Нофейтово пространство и смежные области |
|||
|
||||
| Farmazon |
|
|||
![]() Разработчик ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 7.7.2006 Репутация: 1 Всего: 5 |
new File(sFileName).getName() не катит?
-------------------- Таково моё общее мнение. |
|||
|
||||
| saneea |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Ну вот по видимому так и придется делать... хотя это слегка раздует код + нужно не забыть сделать такую "обёртку" во всех местах + не забывать делать такую "обёртку" при появлении таких новых мест.
нет, код свой, но не хотелось его перелопачивать, но по видимому придётся.
Не понимаю как это можно использовать. У меня ведь нет sFileName, если я просто поймал java.io.FileNotFoundException. Всем спасибо! |
||||||||
|
|||||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |