| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Exception |
| Автор: LAKERS 4.5.2006, 14:16 | ||
нужно следующее: если ошибка формата java.lang.NullPointerException , то вывести сообщение по русски "Ошибка ...(такая-то) " если ошибка java.io.FileNotFoundException, то вывести сообщение об этой ошибке....как это сделать?
|
| Автор: allex 4.5.2006, 14:32 |
| LAKERS, завести Map, положить туда пары: класс ошибки -> строка. Ну и выбирать потом. |
| Автор: ShamanTrirukiy 4.5.2006, 14:35 | ||
Обычно исключения обрабатывают так:
|
| Автор: ALKS 4.5.2006, 14:55 |
| стандартные исключения по-моему можно изначально локализовать на уровне jre. у меня они например все на немецком сыпяться. если на немецком можно, то и на русском тоже должно палить и без всякого специального кода |
| Автор: ShamanTrirukiy 5.5.2006, 11:05 |
поидее, если пойман, например, Exception e, то e.getLocalizedMessage() должен вернуть сообщение на языке, установленном by default. |
| Автор: ALKS 5.5.2006, 18:23 | ||
этот код из класса Throwable если вы еще не поняли мы в анусе. локализировать классы исключения можно только в наследниках путем оverride этой функции. но уже имеющиеся дефолтные исключения так локализировать не удасться. ибо они изначально не поддерживают локализированный метод.... В догонку- начитался массу ругани по этому поводу в нете |
| Автор: ShamanTrirukiy 6.5.2006, 12:22 |
Еще как понял. Приношу свои извинения за сказанную глупость. Просто где-то читал данное изречение, сам работаю с английским, а исходники не посмотрел ALKS, спасибо за науку - в следующий раз буду аккуратней. P.S. Сори за оффтоп |
| Автор: ALKS 6.5.2006, 12:54 |
| ндя... собственно как выясняеться в API Doc класса Throwable( http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Throwable.html#getLocalizedMessage() ) прямо написано: public String getLocalizedMessage() Creates a localized description of this throwable. Subclasses may override this method in order to produce a locale-specific message. For subclasses that do not override this method, the default implementation returns the same result as getMessage(). RTFM и нефиг в исходниках ковыряться... кстати очень познавательная серия статей по теме: http://www.javaworld.com/javaworld/jw-08-2001/jw-0803-exceptions.html? |
| Автор: ShamanTrirukiy 6.5.2006, 13:12 | ||||
Честное слово, читать умею. В исходниках тоже есть комментарии
P.S. Еще раз сори за оффтоп. P.P.S. Также очень многое по этому поводу есть у С.Стелтинга в Java без сбоев. Обработка исключений, тестирование, отладка - книга от Sun Microsystems, НЯМС очень полезная... |
| Автор: ShamanTrirukiy 6.5.2006, 13:30 | ||||
Так вот, тот самый Стелтинг советует при локализации Exception-а использовать Locale. Смотрим исходники и наблюдаем там следующий перечень языков, поддерживаемых при локализации:
Так что то, что вполне логично, а вот насчет ты не прав - тут надо ручками... |
| Автор: ALKS 6.5.2006, 14:19 |
| не на немецком у меня ничего не работает наврал. немецкие сообщения сыпер АрpServer а не сама Java, да и то не все. Видно АрpServer чего-то перехватил и локализовал а чего-то нет. |
| Автор: LSD 7.5.2006, 12:22 | ||
Это просто список наиболее часто употребляемых констант для локалей, а полный список можно получить так: Locale.getAvailableLocales(). По поводу ошибок, Java ошибки не локализует. За исключением некоторых специфичных случаев, типа FileNotFoundException, но там уже дается то сообщение которое выдала ОС и это заслуга не JVM. Некоторые драйвера JDBC локализуют свои сообщения об ошибках. Считается что Exception-ы предназначены для программиста, а не пользователя, а как их обработать и отобразить пользователю, это уже дело программиста. |