@lacredin
Программист

Почему catch может получать null?

Пишу adroid приложение
взял пример в официального сайта.
При попытке отправить запрос всегда выбрасывается исключение, но catch всегда получает null
Поэтому я не могу понять причину исключения, помогите пожалуйста разобраться с тем, почему catch получает null, ну и если возможно, то подскажите почему он в принципе может не отправлять http запросы.
Проверяю на android 4.1
try {
    text2.setText(http_demo_ofcial("http://google.ru"));
 }catch (Exception io){
     System.out.println(io);
      if(io != null) {
          String str = io.getLocalizedMessage();
          io.printStackTrace();
          text2.setText(str);
      }
 }


public static String http_demo_ofcial(String args) throws Exception {

        URL url = new URL("http://www.android.com/");
        HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
        try {
            InputStream in = new BufferedInputStream(urlConnection.getInputStream());
            return readStream(in);
        } finally {
            urlConnection.disconnect();
        }
    }
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
GavriKos
@GavriKos
Скорее всего ошибка в том, что вы пытаетесь работать с сетью из UI потока. Вот очень похоже, судя по архитектуре.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Не понял про null, в этом месте вы должны получать NetworkOnMainThreadException. В андроиде нельзя ходить в сеть из UI-потока. И нельзя обращаться к элементам пользовательского интерфейса из не-UI потоков.
Используйте для сети любую популярную библиотеку: Retrofit, okhttp, volley... Для загрузки картинок (как ни странно) обычно используются другие библиотеки: Glade, Picasso, Universal image loader...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы