Wprowadzając nowe typy wyjątków, zawsze jestem pewien, ale nie wiem, jak to zrobić poprawnie. Czy istnieje wspólna konwencja? Jak ty to robisz?Jak nazywasz i organizujesz wyjątki?
Jestem zainteresowany zakresu je organizować (Należy je przechowywać w jednostce są one wykorzystywane? Czy jednostkę na poziomie komponentu? Poziomie pakietu? Aplikacji?)
ten wpływa również nazewnictwa. Ile kontekstu uwzględniasz? Czy lepiej uczynić je bardzo specyficznymi (jak EPersonIDNotFoundError), czy też spróbować uczynić je możliwymi do ponownego użycia (jak ENotFoundError)?
A co z przyrostkiem "Błąd" - kiedy należy go dodać i kiedy go opuścić? Nie widzę logiki, np. w Classes.pas
:
EWriteError = class(EFilerError);
EClassNotFound = class(EFilerError);
EResNotFound = class(Exception);
Myślę, że dobrze jest organizować wyjątki według wagi i paczki. Według stopnia ważności, np. oddzielne wyjątki sprawdzania poprawności od błędów ładowania/zapisywania danych. Instancja wyjątku może zawierać bardziej szczegółowe informacje na temat okazji, w jakich się pojawił. – too
To nie jest pytanie ... Zbyt wiele pytań naraz, z potencjalną debatą (trolling?). IMHO to nie pasuje do celu SO. –
@Arnaud Cóż, pozwól mi spróbować odpowiedzieć na to. Ponieważ naprawdę doceniam dane wejściowe. –