обрабатывать JSONException из HttpResponse - PullRequest
0 голосов
/ 15 января 2020

У меня есть метод, который должен действовать на основе ответа от другой службы.

Ожидаемый ответ: {"status":"success"}

У меня есть 2 метода в моем коде java.

String getResultParam( HttpUriRequest request ) {
    JSONObject res = getResult( request );
    return res.getString( "status");
}

JSONObject getResult( HttpUriRequest request ) {
    String res = // process the request and get the response String
    JSONObject jsonObj = new JSONObject(res);
}

Первый - это обобщенный c метод для выполнения любого запроса и получения строки ответа в виде JSON. Здесь new JSONObject(res) создает исключение JSONException.

Второй метод должен получить status из JSON после выполнения запроса. Здесь res.getString("status") снова вызывает исключение JSONException.

Как мне обрабатывать эти исключения?

  • Нужно ли распространять исключение как throws JSONException на все методы, использующие этот метод?
  • Если мне нужно распространить исключение для всех методов, вызывающих этот метод, где будет точка, где я перехватываю и обрабатываю исключение?
  • Нужно ли перехватывать исключение в том же методе и генерировать исключение времени выполнения?
  • Должен ли я вернуть null в методе generi c?

Каким будет правильный дизайн для обработки этого исключения? Любой совет будет принят.

Я использую Tomcat Server, а не Spring.

Ответы [ 2 ]

0 голосов
/ 15 января 2020

1) распространить исключение как бросает JSONException на generi c метод

2) перехватывать Exception и генерировать ответ на ошибку или throw generi c Exception

String getResultParam( HttpUriRequest request ) {
    try
    {
        JSONObject res = getResult( request );
        return res.getString( "status");
    } catch(Exception e){
    // Or Throw new  GenericException(e);
        return res.getString("failure");
    }
}
JSONObject getResult( HttpUriRequest request ) {
    String res = // process the request and get the response String
    JSONObject jsonObj = new JSONObject(res);
}
0 голосов
/ 15 января 2020

Всегда лучше обрабатывать или генерировать исключение времени выполнения в более специфических c методах, которые вы можете увидеть, используя некоторые java API, из которых вы узнали, что проекты с java следуют тому, как коды java обрабатывают исключение , et c.

...