Хорошо существует, конечно, лучшая реализация перечислимого решения (который обычно довольно хорош):
public enum Error {
DATABASE(0, "A database error has occured."),
DUPLICATE_USER(1, "This user already exists.");
private final int code;
private final String description;
private Error(int code, String description) {
this.code = code;
this.description = description;
}
public String getDescription() {
return description;
}
public int getCode() {
return code;
}
@Override
public String toString() {
return code + ": " + description;
}
}
можно хотеть переопределить toString (), чтобы просто возвратить описание вместо этого - не уверенный. Так или иначе основной момент - то, что Вы не должны переопределять отдельно для каждого кода ошибки. Также обратите внимание, что я явно определил код вместо того, чтобы использовать порядковый номер - это облегчает изменять порядок и добавлять/удалять ошибки позже.
не забывают, что это не интернационализируется вообще - но если Ваш клиент веб-сервиса не отправляет Вам описание локали, Вы не можете легко интернационализировать его сами так или иначе. По крайней мере, у них будет код ошибки для использования для i18n в стороне клиента...
файл (1)
может быстро сказать вам, является ли общий объект 32-битным или 64-битным. Попробуйте:
file /lib/*.so*