Tôi đang sử dụng SonarQube cho chất lượng mã. Tôi đã có một vấn đề liên quan đến xử lý ngoại lệ, trong đó nói loại bỏ khoản ném từ cuối cùng khối.Làm thế nào để tránh điều khoản ném cuối cùng là chặn
} catch(Exception e) {
throw new MyException("request failed : ", e);
} finally {
try {
httpClient.close();
} catch (IOException e) {
throw new MyException("failed to close server conn: ", e);
}
}
Dựa trên sự hiểu biết của tôi ở trên mã có vẻ tốt. Nếu tôi loại bỏ điều khoản ném và ngăn chặn ngoại lệ trong cuối cùng sau đó người gọi của phương pháp này sẽ không thể biết trạng thái của máy chủ. Tôi không chắc chắn làm thế nào chúng ta có thể đạt được chức năng tương tự mà không có điều khoản ném.
Bạn đã thử thêm một khối 'cuối cùng' vào khối' try-catch' bên trong đó và xem liệu nó có cảnh báo không? – Vikdor
Nếu bạn đã sử dụng mệnh đề ném để chỉ ra các lỗi khác trong cùng một hàm, có lẽ sẽ không khôn ngoan khi sử dụng một phương pháp khác cho trường hợp cụ thể này? – Troyseph
Ồ, tôi nghĩ bạn đang lo lắng bởi vì ngay cả khi kết nối không bao giờ được thực hiện thành công, khối 'cuối cùng' của bạn vẫn ném 'MyException' của bạn, tôi có đúng không? – Troyseph