TERASOLUNA 5.x学習(4.2 例外ハンドリング)
ガイドライン
学習のポイント
- 細部にとらわれないこと
- 分析や解釈の罠にはまらないこと
- ストーリーを作ること
- どんな利用状況がある?
- 誰向けの説明?誰向けのシステム?
- 口頭で説明できる?
- 構造の理由を腹落ちさせること
- セキュリティ
- 開発生産性
- 動作イメージを腹落ちさせること
- メタファを作ること
- トライアンドエラーできる環境を作ること
- 情報を整理しようとするな(しすぎるな)
- けっこう自分の悪いクセではある
- 情報はどんどんフローで流す
- かけ流しながら都度考える
- かけ流しなら書き流すとよい
- 最後の最後で整理すればよい
課題
- ServletとControllerの関係性について
- 例外の発生原因、発生場所、対処法
- システム例外、予期しないシステム例外、致命的なエラーの線引
書き流し
- ビジネス例外、システム例外、フレームワーク例外、
- 例外のスロー、ハンドリング、try-catch、@ExceptionHandler、HandlerExceptionResolver、<mvc:annotation-driven>、SystemExceptionResolver、error-page、ExceptionHandlerExceptionResolver、ResponseStatusExceptionResolver、DefaultHandlerExceptionResolver、自動的に登録されるHandlerExceptionResolver、@ControllerAdviceアノテーションをクラスにつけて@ExceptionHandlerアノテーションをメソッドにつける、サーブレット内のすべてのController、ビジネス例外、ライブラリ例外、システム例外、致命的なエラー、フレームワーク例外
- 説明が細かすぎて逆に見通しが悪くなっている
- 説明が無機質すぎて心に残らない。例外のヤバみが伝わってこない
- システム例外、予期しないシステム例外、致命的エラーの線引がいまいちわからない
- ハンドリング単位:リクエスト、ユースケース、サーブレット、Webアプリ
- プロジェクトに参加したときに、「一人でなんでもできる」のではなく、メンバや顧客と議論できるだけの「語彙」と「手を動かした経験」「さくっと検証できるスピード感」が大事になってくる
- 例外の処理方法はある程度システマチックにできるはずだから、慣れてくると実装するのが楽しくなっていく予感はある
- このガイドライン、書き下していっている印象あるけど、網羅性ってどう担保しているのだろう
- ガイドラインの読み方=網羅性を拾い上げていく作業?