我现在在计算机科学(java)课程中,我们的任务是创建一个程序,从input.txt文件中读取整数(教授会有这个)并将所有整数打印到输出中。 txt文件。任何异常/错误都需要打印到我们程序创建的errors.txt文件中。 (我们现在正在课堂上学习例外情况。)
我的程序能够读取输入文件并将整数打印到output.txt,但是我在打印出可能发生的所有异常时遇到问题。例如,如果输入文件的“abc”作为其中一行,则应在errors.txt文件中打印出一条消息,说明它不是整数。
我的程序会发生的情况是,只要抛出一个异常,即使有更多要打印的内容,也不会打印出所有其他异常。它就在那时停止了。
例如,像这样:
try{
while (fileScan.hasNext())
{
num = fileScan.nextInt();
}
}catch(Exception e)
{
erout.println(e); //prints the error to the file.
fileScan.nextLine();
}
erout是error.txt文件的PrintWriter对象。 file.can用于input.txt。
我只是不确定如何让它遍历所有input.txt文件并跟踪它将抛出的所有异常,然后将所有这些异常打印到error.txt文件中。任何帮助将不胜感激,谢谢。 :)
答案 0 :(得分:2)
您可以将while
循环移到try
语句之外。
while (fileScan.hasNext())
{
try{
num = fileScan.nextInt();
}catch(Exception e)
{
erout.println(e); //prints the error to the file.
fileScan.nextLine();
}
}
答案 1 :(得分:1)
您需要重新订购while
和try
/ catch
:
List<Exception> exceptions = new ArrayList<>();
while (fileScan.hasNext()) {
try {
num = fileScan.nextInt();
// more code here to process num
} catch (Exception e) {
// Might also want to create a custom exception type to track
// The line/file that the error occurred upon.
exceptions.add(e);
fileScan.nextLine();
}
}
答案 2 :(得分:0)
你要做的就是在一段时间内移动try / catch:
while (fileScan.hasNext())
{
try {
num = fileScan.nextInt();
}
catch (Exception e) {
erout.println(e); //prints the error to the file.
fileScan.nextLine();
}
}