Исключение Exception in thread "main" java.lang.NullPointerException

Вот код на Java:

package com.company;
import java.io.IOException;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.ParseException;
import org.apache.hc.core5.http.io.entity.EntityUtils;


public class Main {
    static String sURL = "http://speller.yandex.net/services/spellservice";
    public static void main(String[] args) throws IOException {
        CloseableHttpResponse resp1 = null;
        try{
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(sURL + "/checkText?text=мошына");
            resp1 = httpClient.execute(httpGet);
            System.out.println(EntityUtils.toString(resp1.getEntity()));
        } catch (IOException | ParseException e){
         e.printStackTrace();
        } finally {
            try {
                resp1.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

Ошибка:

Exception in thread "main" java.lang.NullPointerException
    at com.company.Main.main(Main.java:24)

Как исправить данную ошибку?


Ответы (1 шт):

Автор решения: Fariz Mamedow

на строке 24 вы вызывает метод close() у объекта (resp1) значение которая ровняется null если сработал catch.
Сделайте что то типа:

public class Main {
    static String sURL = "http://speller.yandex.net/services/spellservice";
    public static void main(String[] args) throws IOException {
        CloseableHttpResponse resp1 = null;
        try{
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpGet httpGet = new HttpGet(sURL + "/checkText?text=мошына");
            resp1 = httpClient.execute(httpGet);
            System.out.println(EntityUtils.toString(resp1.getEntity()));
        } catch (IOException | ParseException e){
         e.printStackTrace();
        } finally {
            if (resp1 != null) {
              try {
                  resp1.close();
               } catch (IOException e) {
                  e.printStackTrace();
               }
            }
        }
    }
}
→ Ссылка