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);
}
我不明白为什么会报错,我声明了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);
}