Как контролировать исключение при разработке RESTful API с помощью Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как контролировать исключение при разработке RESTful API с помощью Java?

Сообщение Anonymous »

Я разрабатываю RESTful API для наших клиентов.

Я собираюсь показать информацию об ошибках, если произойдет какая-либо ошибка.

Протокол информации об ошибках выглядит, как показано ниже.

Код: Выделить всё

{
"status": "failure",
"error": {
"message": "",
"type": "",
"code": 0000
}
}
Как управлять исключениями на уровне программирования?

Теперь я создал собственный класс исключений, расширяющий класс Exception. (не RuntimeException)

Хорош ли этот подход или нет? Лучше ли использовать RuntimeExcepion?

Мой собственный класс исключений...

Код: Выделить всё

public class APIException extends Exception {
public enum Code {
// duplicated exceptions
ALREADY_REGISTERED(1001),

// size exceptions
OVER_KEYWORD_LIMIT(2001),
OVER_CATEGORY_LIMIT(2002),
TOO_SHORT_CONTENTS_LENGTH(2003),
TOO_SHORT_TITLE_LENGTH(2004),

// database exceptions
DB_ERROR(3001),

// unregistered exceptions
UNREGISTERED_NAME(4001),

// missing information exceptions
MISSING_PARAMETER(5001),

// invalid information exceptions
INVALID_PARAMETER(6001),
INVALID_URL_PATTERN(6002);

private final Integer value;
private Code(Integer value) {
this.value = value;
}
public Integer getType() {
return value;
}
}

private final Code code;

public APIException(Code code) {
this.code = code;
}
public APIException(Code code, Throwable cause) {
super(cause);
this.code = code;
}
public APIException(Code code, String msg, Throwable cause) {
super(msg, cause);
this.code = code;
}
public APIException(Code code, String msg) {
super(msg);
this.code = code;
}

public Code getCode() {
return code;
}
}
И используя такой класс APIException...

Код: Выделить всё

public void delete(int idx) throws APIException {
try {
Product product = productDao.findByIdx(idx);
if (product.getCount() > 0) {
throw new APIException(Code.ALREADY_REGISTERED,
"Already registered product.");
}
productDao.delete(idx);
} catch (Exception e) {
throw new APIException(Code.DB_ERROR,
"Cannot delete product. " + e.getMessage());
}
}
Что лучше — создать собственный класс исключений или использовать существующее исключение, например IllegalArgumentException.

Если лучше создать собственный класс исключений, что мне следует расширить среди Exception или RuntimeException?

Пожалуйста, порекомендуйте мне хороший пример, подобный моей ситуации. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/115 ... -with-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»