0

例外がスローされることがわかっていることを行うのは悪い形式ですか (適切に処理すると仮定します)? 例えば:

 JSONArray stuff = new JSONArray();
 JSONArray otherStuff = new JSONArray();
 try{
     for(i = 0; i < stuff.length(); i++){
         JSONObject a = stuff.getJSONObject(i);
         otherStuff.add(a);          
      }
 } catch (JSONException e){
     Log.e("FAIL", e.toString());
 }

//more code adding things to array later on

この場合、最初にシーケンスを実行したとき、配列は空になり、インデックス i には何もないため、getJSONObject は例外をスローします。ただし、後で配列に何かが追加された場合、例外はスローされません。

確かに、このコードは単なる仮説です (もっと良い例があると確信しています - 誰かが持っているかもしれません) が、フォーム/スタイルの問題として、意図的に例外をスローしても問題ありませんか? それとも、それらをすべて一緒に投げることを避けるべきですか?

4

2 に答える 2

4

私の経験では、例外をフロー制御として使用することは一般的に悪い習慣と考えられています。それらは、例外的な状況のために予約する必要があります。

于 2013-01-17T19:32:17.003 に答える
1

私の意見では、例外が例外的なケースでのみスローされ、ループを終了するなどの通常の方法としてではなく、問題ありません。

ただし、注意してください: 例外の作成、スロー、およびキャッチは高速ではありません。

=> 可能であれば (そして複雑すぎないので、例外を使用しないことを強くお勧めします。

于 2013-01-17T19:33:29.730 に答える