TERASOLUNA 5.x学習(4.2 例外ハンドリング)

ガイドライン

4.2. 例外ハンドリング — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.2.0.RELEASE documentation

学習のポイント

  • 細部にとらわれないこと
  • 分析や解釈の罠にはまらないこと
  • ストーリーを作ること
    • どんな利用状況がある?
    • 誰向けの説明?誰向けのシステム?
    • 口頭で説明できる?
  • 構造の理由を腹落ちさせること
    • セキュリティ
    • 開発生産性
  • 動作イメージを腹落ちさせること
  • メタファを作ること
  • トライアンドエラーできる環境を作ること
  • 情報を整理しようとするな(しすぎるな)
    • けっこう自分の悪いクセではある
    • 情報はどんどんフローで流す
    • かけ流しながら都度考える
    • かけ流しなら書き流すとよい
    • 最後の最後で整理すればよい

課題

  • ServletとControllerの関係性について
  • 例外の発生原因、発生場所、対処法
  • システム例外、予期しないシステム例外、致命的なエラーの線引

書き流し

  • ビジネス例外、システム例外、フレームワーク例外、
  • 例外のスロー、ハンドリング、try-catch、@ExceptionHandler、HandlerExceptionResolver、<mvc:annotation-driven>、SystemExceptionResolver、error-page、ExceptionHandlerExceptionResolver、ResponseStatusExceptionResolver、DefaultHandlerExceptionResolver、自動的に登録されるHandlerExceptionResolver、@ControllerAdviceアノテーションをクラスにつけて@ExceptionHandlerアノテーションをメソッドにつける、サーブレット内のすべてのController、ビジネス例外、ライブラリ例外、システム例外、致命的なエラー、フレームワーク例外
  • 説明が細かすぎて逆に見通しが悪くなっている
  • 説明が無機質すぎて心に残らない。例外のヤバみが伝わってこない
  • システム例外、予期しないシステム例外、致命的エラーの線引がいまいちわからない
  • ハンドリング単位:リクエスト、ユースケースサーブレット、Webアプリ
  • プロジェクトに参加したときに、「一人でなんでもできる」のではなく、メンバや顧客と議論できるだけの「語彙」と「手を動かした経験」「さくっと検証できるスピード感」が大事になってくる
  • 例外の処理方法はある程度システマチックにできるはずだから、慣れてくると実装するのが楽しくなっていく予感はある
  • このガイドライン、書き下していっている印象あるけど、網羅性ってどう担保しているのだろう
  • ガイドラインの読み方=網羅性を拾い上げていく作業?