我正在考虑使用这段代码而不使用 try catch。我可以这样用吗?在这里使用它而不使用 try catch 是一种不好的做法吗?
无需尝试捕获
public static void saveFile(String uploadDir, String fileName, MultipartFile multipartFile) throws IOException {
Path uploadPath = Paths.get("D:" + uploadDir);
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
InputStream inputStream = multipartFile.getInputStream();
Path filePath = uploadPath.resolve(fileName);
Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
}
}
或
使用 try catch
public static void saveFile(String uploadDir, String fileName, MultipartFile multipartFile) throws IOException {
Path uploadPath = Paths.get("D:" + uploadDir);
if (!Files.exists(uploadPath)) {
Files.createDirectories(uploadPath);
}
try (InputStream inputStream = multipartFile.getInputStream()) {
Path filePath = uploadPath.resolve(fileName);
Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException ioException) {
System.out.println(ioException);
}
}
我希望减少这里的代码行......
异常是告诉调用者您(您的方法)无法完成任务的首选方式。对于您的调用者来说,有必要知道文件是否已保存,以便在文件未保存时可以中止进一步的步骤(或采取其他适当的操作)。
因此,第一个版本还可以,因为您的调用者会收到一条通知,表明尝试保存文件不起作用(只需接收异常)。
第二个是完全错误的。主要是方法调用者必须被告知失败,而不是某些用户读取控制台输出。