Why doesn’t it work for Java to return a statement within a catch block?
•
Java
Why does the following code always return true even if an exception is thrown?
public boolean write (ArrayList<String> inputText,String locationToSave){
try {
File fileDir = new File(locationToSave);
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileDir),"utf8"));
int index = 0;
int size = inputText.size();
while (index < size) {
out.append(inputText.get(index));
out.append("\n");
index++;
}
out.flush();
out.close();
return true;
} catch (UnsupportedEncodingException e) {
System.out.println("UnsupportedEncodingException is : \n" + e.getMessage());
return false;
} catch (IOException e) {
System.out.println("IOException is : \n" + e.getMessage());
return false;
} catch (Exception e) {
System.out.println("Exception is : \n" + e.getMessage());
return false;
}
}
Edition 01
This is the code I used to test the previous code:
if (fileReader.write(fileReader.read(selectedFile),selectedSaveLocation)) {
System.out.println("The file : " + selectedFile + " as been successfully"
+ "converted to : " + selectedSaveLocation );
} else {
System.out.println("The file : " + selectedFile + " Failed to convert!" );
}
Solution
I don't think you see what you think you see In other words, I'm pretty sure it actually returns false. You should check the calling code
For example, I paste your code into a new Java console application, make it static, and write a main method using this body:
System.out.println(write(null,null));
The output is:
Exception is : null false
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
