JAvaのIO入出力ストリームと異常処理
954 ワード
1、異常の有無にかかわらず、finallyのコードが実行される
2、try、catchにreturnがある場合、finallyのコードは引き続き実行される
3、finallyはreturnの後の式の演算の後に実行され、この場合は演算後の値を返すのではなく、値を保存し、finallyがその値を変更しても、返された値は変更されず、保存された値を返します.すなわち,メソッドの戻り値はfinally演算の前に決定される.
4、finallyコードにreturnを含まないほうがいいです.プログラムは早めに終了します.つまり、tryやcatchの値ではありません.
ioの入出力ストリームのクローズはfinallyに置くことができます
2、try、catchにreturnがある場合、finallyのコードは引き続き実行される
3、finallyはreturnの後の式の演算の後に実行され、この場合は演算後の値を返すのではなく、値を保存し、finallyがその値を変更しても、返された値は変更されず、保存された値を返します.すなわち,メソッドの戻り値はfinally演算の前に決定される.
4、finallyコードにreturnを含まないほうがいいです.プログラムは早めに終了します.つまり、tryやcatchの値ではありません.
ioの入出力ストリームのクローズはfinallyに置くことができます
InputStream inputStream = null;
OutputStream os = null;
try {
File file = new File(path);
inputStream = new FileInputStream(new File(path));
os = response.getOutputStream();
byte[] b = new byte[2048];
int length;
while ((length = inputStream.read(b)) > 0) {
os.write(b, 0, length);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
// 。
if (os != null) {
os.close();
}
if (inputStream != null) {
inputStream.close();
}
}
return null;