0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エラーハンドリングを重視した機能開発

Posted at

はじめに

設計の時点でエラーハンドリングの意識はできていますか?
読みやすくてバグを拾いやすいコーディングをすることで、レビューもしやすくなりますし、非機能要件の考慮もできます。ここでは、そんなことについて触れています。
駆け出しの人に向けた記事になっていますので、優しいマサカリはいつでもお願いします。

何がおいしいの?

これで実装するととりあえず

  1. セキュリティ
  2. 保守性
  3. 可読性
  4. テスト性
  5. 例外処理の正確さ

が担保できると思います。

内容

処理に入る前に異常値はすべて弾くという記述法です。
メリットとしては、
①テストしやすい(正常系以外が拾いやすい)
②処理に余分な例外がなくなり読みやすい(例外処理がわかりやすい)
③レビューしやすい(設計書に照らし合わせやすい)
などがあると思います。

コード例

あくまで一例ですが、このようなコーディングができます。

method A(int num, String str){

 //セッション情報の確認
 セッション確認
 
 //num値の確認
 if(num == null) {エラー処理1};//nullはだめ
 if(num <= 0){エラー処理2};//0以下はだめ
 if(num > 3){エラー処理3};//1,2,3以外だめ
 
 //num値OK、str値の確認
 if(str == null){エラー処理4};//nullはだめ
 if(str.equal("")){エラー処理5};//空文字はだめ
 
 //str値OK、処理
 if(num == 1){
  //処理1
 }else if(num == 2){ 
  //処理2
 }
}

処理に入るころには入力値系の例外はすべて拾えている
といった寸法です

#おわり
このようなコードがのちに書かれることを想定して設計することで、後工程でもメリットが得られます。
詳細設計レベルでは落とし込みができますが、基本設計レベルでは粒度の問題でできないので、コーディング規約で縛るのもアリかもしれませんね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?