ネットワークAPIドキュメントなどのBlackberryドキュメントでThrowableのcatch句をよく目にします。私の感覚では、これは一般的にJavaでは良い習慣ではありません。
ブラックベリープログラミングでこれに理由はありますか?
Throwablesのスタックトレース生成と関係がありますか?
ネットワークAPIドキュメントなどのBlackberryドキュメントでThrowableのcatch句をよく目にします。私の感覚では、これは一般的にJavaでは良い習慣ではありません。
ブラックベリープログラミングでこれに理由はありますか?
Throwablesのスタックトレース生成と関係がありますか?
BlackBerryアプリでThrowableをキャッチすると、スタックトレースが保持されるだけでなく、そのスタックトレースがデバイスイベントログに保存されます。 アプリ自体がスタックトレースを取得する方法はないため、残念ながら、スタックトレースを自動的に収集することはできません。
スタックトレースを表示するには、イベントログビューアを表示します。物理キーボードを備えたブラックベリーの場合は、「Alt」を押しながらLGLGを押してイベントログを表示します。
Throwableのサブクラスであるjava.lang.Errorのドキュメントを読むと、Throwableのキャッチに関する問題がわかります。
それは言う:
エラーはThrowableのサブクラスであり、妥当なアプリケーションがキャッチしようとしてはならない重大な問題を示します。
たとえば、VM全体が壊れた状態にあることを示すVirtualMachineErrorを誤ってキャッチしてしまう可能性があります。壊れたVMで実行するためにfinallyブロックに何かを入れるのは、良い考えではないようです。
特別な理由はないと思います。コメントを参照してください:
} catch(Throwable t){//特定の例外をキャッチして、さまざまなタイプの特別なハドリングを含めることもできます
これは、例が基本的であることを意味します。そして、タイプミスと悪い習慣があります。したがって、可能であれば特定の例外をキャッチします。
BBプラットフォームでは、Throwableがキャッチされた場合、スタックトレースが保持され、通常は画面にレンダリングされ、ユーザーの顔を爆破します。UXにはあまり良くありません:(
例外(および拡張クラス)がキャッチされると、効率上の理由からスタックトレースが破棄されます。