try/catch
ブロック内に配置するコードの量に関する「ベスト プラクティス」はありますか?
以下に3つの異なるシナリオを投稿しました。
各catch
ブロックに動作を含めず、finally ブロックも含めませんでした。これは、視聴者の読みやすさを向上させるためでした。それぞれが異なることをすると仮定catch
します。finally
そして、がストリームを閉じると仮定します。将来の読者のために読みやすい例を作成しようとしています。
- コントロール、いいえ
try/catch
。 try/catch
必要な場所ごとに 1 のコード。try/catch
コード ブロック全体を 1 つだけ囲むコード。
一般的にベスト プラクティスとして受け入れられているものとその理由は何ですか?
シナリオ 1
try/catch
制御のためだけに、なしでコード化します。
BufferedReader bufferedReader = new BufferedReader(new FileReader("somepath"));
String line;
while ((line = bufferedReader.readLine()) != null) {
Object object = new Object();
this.doSomething(object);
}
bufferedReader.close();
シナリオ 2
try/catch
必要な個々の場所ごとにブロックを使用してコードを作成します。
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader("somepath"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
String line;
try {
while ((line = bufferedReader.readLine()) != null) {
Object object = new Object();
this.doSomething(object);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
シナリオ 3
try/catch
コードのブロック全体を 1 で囲んだコード。
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader("somepath"));
String line;
while ((line = bufferedReader.readLine()) != null) {
Object object = new Object();
this.doSomething(object);
}
bufferedReader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}