teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

2017/10/04 15:15

投稿

jimyo
jimyo

スコア243

title CHANGED
File without changes
body CHANGED
@@ -1,30 +1,30 @@
1
1
  次のようなメソッドを考えます。
2
2
 
3
- registerUser(User user)
3
+ `registerUser(User user)`
4
4
  - このメソッドはUserをデータストアに登録する
5
5
  - 発生しうるエラーには3種類あり次の通りである
6
6
  - 「データストアへの登録の失敗」
7
7
  - 「ユーザーネームの重複」
8
8
  - 「パスワードに無効な文字が使われている」
9
9
 
10
- registerUserメソッドを呼び出す処理の中で、登録ができたのかどうかを判定したいです。
10
+ `registerUser` メソッドを呼び出す処理の中で、登録ができたのかどうかを判定したいです。
11
11
  登録に失敗している場合、エラーの種別に応じてその後の処理を変更したいです。(例: ユーザーネームが重複している場合、「ユーザーネームが重複しているので変更してください」と促したい)
12
12
 
13
13
  このような処理を行う場合次のような3つのフローが考えられます。
14
14
 
15
- 1. registerUserはintまたはエラーオブジェクトを返す。呼び出し元は返ってきた数値またはオブジェクトからエラー情報を読み取る
15
+ 1. `registerUser` `int` またはエラーオブジェクトを返す。呼び出し元は返ってきた数値またはオブジェクトからエラー情報を読み取る
16
- 2. registerUserはエラーが起きた場合、それぞれのエラーに対応する例外を投げる。呼び出し元はtry-catch文で処理を囲い、3種類の例外をcatchし処理を行う
16
+ 2. `registerUser` はエラーが起きた場合、それぞれのエラーに対応する例外を投げる。呼び出し元は `try-catch` 文で処理を囲い、3種類の例外をcatchし処理を行う
17
- 3. 新しいメソッドcheckDuplicatedUsername」「checkValidPasswordを用意し、それぞれ確認を行ってからregisterUserを呼び出す。
17
+ 3. 新しいメソッド `checkDuplicatedUsername` `checkValidPassword` を用意し、それぞれ確認を行ってから `registerUser` を呼び出す。
18
18
 
19
19
  個人的には1が好みなのですがJava的にはどうなのでしょうか?
20
20
  以下2、3の私が考えたデメリットです。
21
21
 
22
22
  2のデメリット
23
- - 確実にエラーが起きないような場合でも、呼び出すたびにtry-catchしなければならず冗長
23
+ - 確実にエラーが起きないような場合でも、呼び出すたびに `try-catch` しなければならず冗長
24
24
  - この方法で統一した場合コードが膨大になる
25
25
 
26
26
  3のデメリット
27
- - registerUserを呼び出すルールがメソッド内で閉じていない。(あらかじめ2つのメソッドを呼び出す前提となっているため、仕様を詳しく知らない人に不親切)
27
+ - `registerUser` を呼び出すルールがメソッド内で閉じていない。(あらかじめ2つのメソッドを呼び出す前提となっているため、仕様を詳しく知らない人に不親切)
28
28
 
29
29
 
30
30
  よろしくお願いします。