同时使用 try catch 和 throws

问题描述 投票:0回答:1

我正在考虑使用这段代码而不使用 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);
        }


    }

我希望减少这里的代码行......

java try-catch throws
1个回答
0
投票

异常是告诉调用者您(您的方法)无法完成任务的首选方式。对于您的调用者来说,有必要知道文件是否已保存,以便在文件未保存时可以中止进一步的步骤(或采取其他适当的操作)。

因此,第一个版本还可以,因为您的调用者会收到一条通知,表明尝试保存文件不起作用(只需接收异常)。

第二个是完全错误的。主要是方法调用者必须被告知失败,而不是某些用户读取控制台输出。

© www.soinside.com 2019 - 2024. All rights reserved.