我正在研究一个 Spotify 拼图(可在此处查看)。我正在用 Java 编写解决方案,并且我的代码在 Eclipse、ideone.com 和我的 osx 上的终端中传递了他们的两个示例输入,所有这些都没有错误。然而,每当我提交给 Spotify 机器人时,我都会得到以下极简主义的回应:
我们已经测试了您的解决方案,不幸的是,在这样做的同时,我们
发现以下错误:运行时错误
未捕获到异常
这基本上是我在输入中读取的内容:
scn = null;
try {
scn = new Scanner(System.in);
if(scn.hasNext()){
strIn = scn.nextLine();
//do work on first line of input
}
if(scn.hasNext()){
strIn = scn.nextLine();
//do work on second line of input
}
//do work on the rest of the lines
while (scn.hasNext()) {
strIn = scn.nextLine();
if(/*reached last line*/){
break;
}
}
}
catch(Exception e){
System.out.println("Exception caught");
System.out.println(e.getStackTrace());
} finally {
if (scn != null) {
scn.close();
}
}
你可以在这里查看我的完整解决方案。请注意,根据 Spotify 提交指南,我的实际提交声明我的班级是公开的。
由于该问题只需要从标准输入到标准输出的简单 I/O,因此我似乎只需要考虑在我的 try 块中读取输入时可能引发的任何异常。我为所有异常(我知道的错误形式)提供了一个 catch 块,但不应该处理它吗?也许我忽略了一些可能在其他地方出现的例外情况?
可能是我没有考虑 Spotify 机器人如何解析输入的一些小特性,但它们的响应消息和指南使得很难确定问题的确切位置。如果这个问题过于本地化,我深表歉意——其他 Spotify 难题问题都是这样看待的——但我认为我的 i/o 和异常问题足够广泛,也许人们对 Spotify 机器人如何工作有一些很好的答案。另外,我已经有一段时间没有用 Java 编码了,所以当然欢迎任何其他评论。