Попробуйте и Catch Block получить ошибку при запуске кода на Hackerrank, но в NetBeans он работает хорошо - PullRequest
0 голосов
/ 28 ноября 2018

Я не понимаю, почему он выдает ошибку, я объявил Date date = null, любое значение, инициализированное в null в блоке try, не является глобальным, и я получаю ошибку

 DateFormat input = new SimpleDateFormat("hh:mm:ss aa");
    DateFormat output = new SimpleDateFormat("HH:mm:ss");

    Date date=null;

    try{
        date = input.parse(s);
    }catch(ParseException e){
    }
     String newDate= output.format(date);
     return newDate;

Ошибка

 Exception in thread "main" java.lang.NullPointerException
at java.util.Calendar.setTime(Calendar.java:1770)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943)
at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)
at java.text.DateFormat.format(DateFormat.java:345)
at Solution.timeConversion(Solution.java:23)
at Solution.main(Solution.java:34)

1 Ответ

0 голосов
/ 29 ноября 2018

Вы уже прокомментировали, что игнорирование ParseException было корнем вашей проблемы.

Я хотел бы указать, как решить подобные проблемы в подобных сценариях.

Проблема: Вы вынужденыдля обработки проверенного исключения, например ParseException .Просто оберните это так, и вы не потеряете никакой информации:

try {
    date = input.parse(s);
} catch (ParseException e) {
    throw new RuntimeException("put even more useful context infos for debugging here...", e);
}
...