Другие адекватно объяснили причину ошибки компиляции.
Сначала я должен сделать несколько комментариев, а затем несколько советов о том, как диагностировать оставшуюся проблему:
1) Кажется, вы запускали приложение, в котором были ошибки компиляции.Некоторые IDE позволят вам сделать это, но это несколько опасная вещь.Гораздо безопаснее отключить эту опцию и запускать только код, который компилируется.
В средах IDE (в частности, Eclipse) рассматриваются методы, которые не компилируются путем генерации кода метода, который генерирует непроверенное исключение, в котором говорится, что произошла ошибка компиляции.,Если вы вызовете такой метод из основного потока, вы получите трассировку стека.Если вы вызываете его из дочернего потока, вы не сможете увидеть трассировку стека ... в зависимости от того, есть ли у потока "обработчик необработанных исключений".Я подозреваю, что это происходило здесь!
Мораль:
- Исправьте ошибки компиляции до того, как вы запустите свой код.
- Установите по умолчаниюобработчик uncaught исключения, так что вы получите трассировку стека для любого потока, который умирает из-за непроверенного исключения.(Это немного продвинуто для того места, где вы находитесь в данный момент, но попробуйте и запомните это на будущее.)
2) Ваш блок catch для MalformedURLException
- это исключения исключения.То есть оно ловит это исключение, ничего не говоря об этом , а затем , продолжая, как будто ничего плохого не произошло .В этом случае вам необходимо знать , было ли выброшено это исключение, потому что это означает, что в вашей программе есть ошибка;т. е. неверно заданный URL-адрес.
Мораль:
- Не подавляйте неожиданные исключения.Любое непредвиденное исключение должно быть зарегистрировано как минимум .(Также можно разрешить распространение непроверенного исключения. Если у вас есть проверенное исключение, которое вы не хотите обрабатывать в этот момент, вы можете либо объявить его в сигнатуре метода, либо заключить его в непроверенное исключение, хотя прежний подход обычно лучше.)
- Если вы решите, что исключение составляет ожидается и не нужно сообщать, добавьте комментарий в блок catch, чтобы объяснить, что
Вот что, я думаю, вы должны сделать, чтобы двигаться вперед:
1) Исправьте ошибки компиляции.(Вы сделали это, я понимаю)
2) Добавьте некоторый код в предложение catch, чтобы (как минимум) отправить трассировку стека на консоль.
Если это не сработает, тогда:
3a) Запустите код в отладчике
или
3b) Добавьте несколько трассировок и временно добавьте catch (Throwable ex) {ex.printStackTrace();}
, чтобы увидеть, есть лиВыдается какое-то другое непроверенное исключение.
Существует ряд возможных причин наблюдаемого вами "ничего не происходит", и вам необходимо выяснить, какая из возможных причин является действительной причиной.