Piszę usługę internetową w Javie i próbuję znaleźć najlepszy sposób definiowania kodów błędów i powiązanych z nimi ciągów błędów . Muszę mieć zgrupowany numeryczny kod błędu i ciąg błędu. Zarówno kod błędu, jak i ciąg błędu zostaną wysłane do klienta uzyskującego dostęp do usługi internetowej. Na przykład, gdy wystąpi SQLException, mogę chcieć wykonać następujące czynności:
// Example: errorCode = 1,
// errorString = "There was a problem accessing the database."
throw new SomeWebServiceException(errorCode, errorString);
Program kliencki może zobaczyć komunikat:
„Wystąpił błąd nr 1: Wystąpił problem z dostępem do bazy danych”.
Moją pierwszą myślą było użycie jednego Enum
z kodów błędów i zastąpienie toString
metod zwracania ciągów błędów. Oto co wymyśliłem:
public enum Errors {
DATABASE {
@Override
public String toString() {
return "A database error has occured.";
}
},
DUPLICATE_USER {
@Override
public String toString() {
return "This user already exists.";
}
},
// more errors follow
}
Moje pytanie brzmi: czy istnieje lepszy sposób na zrobienie tego? Wolałbym rozwiązanie w kodzie, zamiast czytać z zewnętrznego pliku. Używam Javadoc w tym projekcie i możliwość udokumentowania kodów błędów w linii i automatycznego ich aktualizacji w dokumentacji byłaby pomocna.