在我的方法,下面的伪代码,在一行中创建两个异常(ArrayIndexOutOfBounds和NumberFormatException)的行上。错误的catch块运行
在此行上,输入文件从X + Y列更改为X列。
外部捕获是先捕获并在内部捕获可以自行完成之前停止程序。
我需要内部循环捕捉异常,因为我使用它将数据打印到文件中。
try{
Initialize local variables
//Includes getting numerical strings from input fields
//Hence NumberFormatException to check for correct input
try{
get file name
//hence FileNotFoundException
try{
read line, get column A, B and C
//Column B is at an index larger than X
//hence ArrayIndexOutOfBoundsException
}catch(ArrayIndexOutOfBoundsException){
print data to file
}
} catch(FileNotFoundException){
error message
}
} catch(NumberFormatException){
error message
//error caught here, checks for whether
//numbers were entered in the required fields
}
有没有办法迫使内部catch首先触发或代码需要重新工作呢?
如何获取文件名导致'NumberFormatException'? – Maroun
哦爆炸,我想我可以简化它到它的裸骨,但我不会混淆答案。我将编辑该问题。 – user2659937
可能会在外部try-catch块中抛出异常。在out catch块中打印异常的堆栈跟踪以获得发生异常的extact行号 – AJJ