Trong đoạn mã sau, hàm đóng cho outPutStream ném một ngoại lệ IOException mà tôi nên nắm bắt. Câu hỏi của tôi là tôi cần phải xử lý nó? Vì tôi đang làm việc với các thiết bị di động và tôi muốn đảm bảo rằng tôi giải phóng tất cả các tài nguyên mà tôi sử dụng hoặc tôi có thể bỏ qua ngoại lệ một cách an toàn không.Tôi có cần xử lý hoặc bỏ qua IOException được kích hoạt bởi hàm closeSt() của OutputStream không?
//...
OutputStream output = null;
try {
output = connection.getOutputStream();
output.write(query.getBytes(charset));
} finally {
if (output != null) try {
output.close();
} catch (IOException e) {
// Do i need to do something here ?
}
}
Bạn không bao giờ nên bỏ qua các ngoại lệ có thể bị ném, hãy xem khối tài nguyên Thử-Với mới trong Java 7, mã này có thể trông đẹp hơn một chút: http://docs.oracle.com/javase/ hướng dẫn/cần thiết/ngoại lệ/tryResourceClose.html –
Bạn có thể làm gì với nó? – DaveRlz
Vâng, cái đó luôn khiến tôi gãi đầu. Những gì tôi luôn làm là chỉ cần đăng nhập lỗi, để nếu nó xảy ra tôi biết nó đã làm - nhưng tôi không có đầu mối những gì sẽ phải làm gì để phục hồi trong tình huống này (nếu có). –