Một phần của những ngoại lệ này làm tôi khó chịu nhất là nó làm tổn thương phạm vi bảo hiểm mã của tôi.
Khi tôi bị ép buộc về phạm vi bảo hiểm, tôi sẽ đưa ra thử / bắt rằng "không bao giờ có thể xảy ra" (... hoặc chỉ khi tôi đang sử dụng một JVM đột biến mà bằng cách nào đó đã quên đưa "US-ASCII" vào) một lớp và phương thức đóng gói thử / bắt và thay thế ngoại lệ được kiểm tra theo một trong những cách được đề cập ở đây (thường ném một ngoại lệ không được kiểm tra bằng thông báo snide).
Sau đó, phạm vi bảo hiểm mã của tôi bị ảnh hưởng trong lớp tiện ích, nhưng không phải trong tất cả các tham chiếu đến hoạt động đó nằm rải rác xung quanh mã của tôi.
Đôi khi tôi sẽ dành thời gian để triển khai như các hoạt động trong một lớp học thực sự có ngữ nghĩa mạch lạc. Nhưng vì nó khá rõ ràng với các đồng đội của tôi những gì đang diễn ra, tôi thường chỉ đơn giản như tôi có thể & không phải lo lắng quá nhiều về thiết kế tốt nhất có thể.
Tuy nhiên, như một bình luận đã đề cập, Guava và các thư viện khác có cách để giảm bớt nỗi đau này - nhưng về cơ bản đó là cùng một chiến lược. Di chuyển sự khó chịu ra khỏi giai đoạn để mã chính của bạn không bị ảnh hưởng trong phạm vi bảo hiểm.