Khi giới thiệu các loại ngoại lệ mới, tôi luôn là người không chắc chắn cách thực hiện điều này một cách chính xác. Có một quy ước chung nào không? Bạn làm nó như thế nào?Làm cách nào để đặt tên và sắp xếp các ngoại lệ của bạn?
Tôi quan tâm đến phạm vi bạn tổ chức chúng (Giữ chúng trong đơn vị chúng được sử dụng trong? Có một đơn vị về mức độ thành phần? Mức trọn gói? Ứng dụng?)
này cũng ảnh hưởng đến việc đặt tên. Bạn đưa vào bao nhiêu bối cảnh? Tốt hơn là làm cho chúng rất cụ thể (như EPersonIDNotFoundError) hoặc cố gắng làm cho chúng có thể tái sử dụng (như ENotFoundError)?
Và hậu tố "Lỗi" - khi nào tôi nên thêm nó và khi rời khỏi? Tôi không thể thấy logic, ví dụ: in Classes.pas
:
EWriteError = class(EFilerError);
EClassNotFound = class(EFilerError);
EResNotFound = class(Exception);
Tôi nghĩ rằng việc tổ chức ngoại lệ theo mức độ nghiêm trọng và mỗi gói là rất tốt. Theo mức độ nghiêm trọng ví dụ. ngoại lệ xác thực riêng biệt từ lỗi tải/lưu dữ liệu. Trường hợp ngoại lệ có thể chứa chi tiết cụ thể hơn về sự kiện xảy ra. – too
Đây không phải là một câu hỏi ... Quá nhiều câu hỏi cùng một lúc, với một số tranh luận tiềm năng (trolling?). IMHO này không phù hợp với mục đích SO. –
@Arnaud Vâng, hãy để tôi thử trả lời câu hỏi này. Bởi vì tôi thực sự đánh giá cao đầu vào. –