|
|
|
Подскажите про логирование и обработку эксепшенов простого приложения
|
|||
|---|---|---|---|
|
#18+
Приветствую всех! Я в джаве новичок, потому прошу не смеяться :) При построении приложения какого-нибудь легкого уровня типа запись в бд+вывод на экран, как правильно делать эксепшены и логирование этих самых эксепшенов? P.S.: Мне думается, что надо так: создаем свой собственный класс MyException, наследуемый от Exception, затем в блоках try {...} catch обрабатываемых исключений вызываем наше исключение throw new MyException("Что-то здесь пишется"). Потом создается класс-логгер, пишущий в какой-то файл, и в классе MyException создается его экземпляр и производится логирование. Я правильно понимаю суть или не очень? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:27:37 |
|
||
|
Подскажите про логирование и обработку эксепшенов простого приложения
|
|||
|---|---|---|---|
|
#18+
drcosmoПриветствую всех! Я в джаве новичок, потому прошу не смеяться :) При построении приложения какого-нибудь легкого уровня типа запись в бд+вывод на экран, как правильно делать эксепшены и логирование этих самых эксепшенов? P.S.: Мне думается, что надо так: создаем свой собственный класс MyException, наследуемый от Exception, затем в блоках try {...} catch обрабатываемых исключений вызываем наше исключение throw new MyException("Что-то здесь пишется"). Потом создается класс-логгер, пишущий в какой-то файл, и в классе MyException создается его экземпляр и производится логирование. Я правильно понимаю суть или не очень? Можно проще Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:37:43 |
|
||
|
Подскажите про логирование и обработку эксепшенов простого приложения
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, спасибо. А создание собственного класса эксепшенов это получается не уместно в подобных задачах? Вернее, считается ли это правилом хорошего тона? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:43:22 |
|
||
|
Подскажите про логирование и обработку эксепшенов простого приложения
|
|||
|---|---|---|---|
|
#18+
Ну, близко к правильному. Но есть много нюансов. MyException на небольших проектах нужен редко. Т.е. в реальности оно нужно когда у вас большой сложый workflow и он имеет свои исключительные ситуации. В остальных же случая ваше исключение будет просто оберткой над cause, которая никому особо не нужна. Разве что если вам действительно нужно как-то спрятать десяток возможных внутренних исключений. Опять же, это на маленьких проектах редкость. Обратите внимание на unchecked exception (RuntimeException). Хотя, по задумке, в Java RuntimeException нужны только для ошибок в коде проекта, а не для внешних исключительных ситуаций. Тем неменее многие их используют для того чтобы избавиться от лишних пробрасываний и catch блоков. На самом деле catch нужен только там, где явно нужно обработать исключительную ситуацию. Но в большинстве случаев мы не можем ничего с ней сделать, кроме как залогировать\показать юзеру\отослать постой. Поэтому часто имеет смысл просто пробрасывать все исключения на самый верхний уровень, где обязательно есть специальный обработчик всех необработаных исключений. Чтобы никто не проскочил. Полистайте поиск на этом форуме и на rsdn.ru про RuntimeException и Checked/Unchecked исключения вообще. Я обычно использую Checked исключения только там где их действительно нужно обработать. А в остальном просто оборачиваю в RuntimeException и выкидываю на самый верх. Логировать любой возможный exception в каждом методе по стеку смысла нет. Только лог и код засирается. Например новичку найти нужный Exception при ошибке деплоймента в старых версиях JBoss бывает тяжело. Так как в логе оно выглядит так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Это как раз просходит из за слишком обильного логирования исключений где только можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:43:57 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2127832]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
208ms |
get topic data: |
10ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 543ms |

| 0 / 0 |
