Ловля Throwable в Blackberry Java: хорошая идея? - PullRequest
0 голосов
/ 11 марта 2011

Я часто вижу предложения catch для Throwable в документации Blackberry, например, Документы сетевого API . Я чувствую, что это не очень хорошая практика в Java.

Есть ли причина для этого в программировании Blackberry?

Имеет ли это отношение к генерации трассировки стека для Throwables?

Ответы [ 4 ]

2 голосов
/ 11 марта 2011

Когда вы перехватываете Throwable в приложении BlackBerry, он не только сохраняет трассировку стека, но и сохраняет эту трассировку в журнале событий устройства. Приложение не может получить трассировку стека , поэтому, к сожалению, вы не можете автоматически собирать трассировки стека.

Чтобы просмотреть трассировку стека, вы открываете программу просмотра журнала событий. Для ежевики с физической клавиатурой, удерживайте «Alt», а затем нажмите L G L G, чтобы открыть журнал событий.

1 голос
/ 11 марта 2011

Прочитайте документацию по java.lang.Error , которая является подклассом Throwable, и вы увидите проблему с перехватом Throwable.

Там написано:

Ошибка является подклассом Throwable что указывает на серьезные проблемы, которые разумное применение не должен пытаться поймать.

Например, вы можете непреднамеренно перехватить VirtualMachineError, указывающую, что вся ВМ находится в неисправном состоянии. Поместить что-то в блок finally для запуска на сломанной виртуальной машине не очень хорошая идея.

0 голосов
/ 11 марта 2011

На платформе BB, если Throwable пойман, он сохраняет трассировку стека и обычно отображает его на экране, взрывая лицо пользователя.Не очень хорошо для UX: (

При обнаружении исключения (и расширенных классов) трассировка стека выбрасывается из соображений эффективности.

0 голосов
/ 11 марта 2011

Не думаю, что есть особая причина.См. Комментарий:

} catch (Throwable t) {// также может перехватывать определенные исключения, включая специальные hasling для различных типов

Это означает, что пример является основным.И опечатка, и плохая практика.Так что ловите конкретные исключения, если это возможно.

...