Try and Catch Block 在 Hackerrank 上 运行 代码时出现错误,但在 netbeans 中它运行良好

Try and Catch Block getting error while running code on Hackerrank but in netbeans it runs well

我不明白为什么会报错,我声明了Date date = null, 在 try 块中初始化为 null 的任何值都不是全局的,我收到错误

 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)

您已经评论说忽略 ParseException 是问题的根源。

我想指出如何在类似场景中解决此类问题。

问题:您被迫处理一个已检查的异常,例如 ParseException。像这样包起来就不会丢失任何信息:

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