Như một câu hỏi chủ quan, điều này nên được đóng lại, nhưng vì nó vẫn mở:
Đây là một phần của chính sách nội bộ được sử dụng tại nơi làm việc trước đây của tôi và nó hoạt động rất tốt. Đây là tất cả từ bộ nhớ nên tôi không thể nhớ chính xác từ ngữ. Điều đáng chú ý là họ đã không sử dụng các ngoại lệ được kiểm tra, nhưng điều đó nằm ngoài phạm vi của câu hỏi. Các ngoại lệ không được kiểm soát mà họ đã sử dụng rơi vào 3 loại chính.
NullPulumException: Đừng cố tình ném. Các NPE chỉ được ném bởi VM khi hủy bỏ tham chiếu null. Tất cả những nỗ lực có thể được thực hiện để đảm bảo rằng những thứ này không bao giờ bị ném. @Nullable và @NotNull nên được sử dụng cùng với các công cụ phân tích mã để tìm các lỗi này.
IllegalArgumentException: Bị ném khi một đối số cho hàm không phù hợp với tài liệu công khai, sao cho lỗi có thể được xác định và mô tả theo các đối số được đưa vào. Tình huống của OP sẽ thuộc loại này.
IllegalStateException: Ném khi một hàm được gọi và các đối số của nó là bất ngờ tại thời điểm chúng được truyền hoặc không tương thích với trạng thái của đối tượng mà phương thức là thành viên của.
Ví dụ: có hai phiên bản nội bộ của IndexOutOfBoundException được sử dụng trong những thứ có độ dài. Một lớp con của IllegalStateException, được sử dụng nếu chỉ mục lớn hơn chiều dài. Một lớp con khác của IllegalArgumentException, được sử dụng nếu chỉ mục là âm. Điều này là do bạn có thể thêm nhiều mục vào đối tượng và đối số sẽ hợp lệ, trong khi số âm không bao giờ hợp lệ.
Như tôi đã nói, hệ thống này hoạt động rất tốt và phải có người giải thích lý do tại sao có sự khác biệt: "Tùy thuộc vào loại lỗi, nó khá đơn giản để bạn tìm ra phải làm gì. Ngay cả khi bạn thực sự không thể hình dung được tìm ra lỗi sai, bạn có thể tìm ra nơi bắt lỗi đó và tạo thêm thông tin sửa lỗi. "
NullPulumException: Xử lý trường hợp Null hoặc đặt một xác nhận để NPE không bị ném. Nếu bạn đặt trong một khẳng định chỉ là một trong hai loại khác. Nếu có thể, tiếp tục gỡ lỗi như thể khẳng định đã ở đó ngay từ đầu.
IllegalArgumentException: bạn có điều gì đó sai ở trang web cuộc gọi của bạn. Nếu các giá trị được truyền vào là từ một hàm khác, hãy tìm hiểu lý do tại sao bạn nhận được một giá trị không chính xác. Nếu bạn truyền vào một trong các đối số của mình, lỗi sẽ kiểm tra ngăn xếp cuộc gọi cho đến khi bạn tìm thấy hàm không trả về những gì bạn mong đợi.
IllegalStateException: Bạn chưa gọi các hàm của mình theo đúng thứ tự. Nếu bạn đang sử dụng một trong các đối số của mình, hãy kiểm tra chúng và ném IllegalArgumentException mô tả vấn đề. Sau đó, bạn có thể tuyên truyền má lên trên ngăn xếp cho đến khi bạn tìm thấy vấn đề.
Dù sao, quan điểm của ông là bạn chỉ có thể sao chép IllegalArgumentAssertions lên ngăn xếp. Không có cách nào để bạn tuyên truyền IllegalStateExceptions hoặc NullPulumExceptions lên ngăn xếp vì chúng có liên quan đến chức năng của bạn.