Java 试着用抛接球
我对用抛接球来尝试/接球感到困惑。我在一个函数中有两个可能的IOException。第一,我想抓住并继续。另一个我想为前面要处理的函数抛出一个异常 如果IOException无法打开文件,我想捕获它,通知用户,然后继续。如果在清除目录时出现IOException,我想抛出一个异常并在调用代码中处理它 如果无法打开文件,它会抛出clearUploads()在捕获异常时可能抛出的异常吗 大体上:Java 试着用抛接球,java,Java,我对用抛接球来尝试/接球感到困惑。我在一个函数中有两个可能的IOException。第一,我想抓住并继续。另一个我想为前面要处理的函数抛出一个异常 如果IOException无法打开文件,我想捕获它,通知用户,然后继续。如果在清除目录时出现IOException,我想抛出一个异常并在调用代码中处理它 如果无法打开文件,它会抛出clearUploads()在捕获异常时可能抛出的异常吗 大体上: output = parseCSV(fileList); 职能: private static
output = parseCSV(fileList);
职能:
private static String parseCSV(List<File> fileList) throws IOException {
String returnString = "";
String[] tokens = null;
String currFileName = "";
for(File file: fileList){
currFileName = file.getName();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
}
//do stuff
}
br.close();
} catch (FileNotFoundException e) {
returnString += "Cannot find " + currfileName + "!\n";
} catch (IOException e) {
returnString += "Cannot open " + currFileName + "!\n";
}
}
clearUploads();
if (returnString.equals("")) {
returnString = "Files uploaded and saved successfully";
}
return returnString;
}
private static void clearUploads() throws IOException {
FileUtils.cleanDirectory(new File(filePath));
}
私有静态字符串parseCSV(列表文件列表)引发IOException{
字符串returnString=“”;
字符串[]标记=null;
字符串currFileName=“”;
用于(文件:文件列表){
currFileName=file.getName();
试一试{
BufferedReader br=新的BufferedReader(新文件读取器(文件));
弦线;
而((line=br.readLine())!=null){
}
//做事
}
br.close();
}catch(filenotfounde异常){
returnString+=“找不到”+currfileName+“!\n”;
}捕获(IOE异常){
returnString+=“无法打开”+currFileName+“!\n”;
}
}
clearUploads();
if(returnString.equals(“”){
returnString=“文件上传保存成功”;
}
返回字符串;
}
私有静态void clearUploads()引发IOException{
cleanDirectory(新文件(filePath));
}
try
块将捕获它在其作用域内的任何内容,并且与catch
部分中的类型兼容,因为clearUploads在try
块之外,它不会被该块捕获。它会抛出clearUploads()异常吗如果无法打开文件,则可能在捕获异常时抛出?对下一个问题。@ElliottFrisch在clearUploads()周围确实看到了try-catch块吗?不,它不会,它不在实现的块的范围内。下一个无能的评论。@apexlol,嗯?它肯定会从clearUploads中抛出相同的异常(因为它不处理异常)。我没说试抓拦网。clearUploads不在try-catch块中。而且您的br.close()
也不安全。您应该在最后调用它,或者最好使用try-with-resources。谢谢。我知道这是一个愚蠢的问题,但我宁愿肯定也不要困惑。在提出问题之前,试着看一下文档,这样,大多数情况下可能需要更长的时间,但你会学到更多,