windows 如何使用File类防止IOException [重复]

2eafrhcq  于 2023-01-14  发布在  Windows
关注(0)|答案(1)|浏览(133)
    • 此问题在此处已有答案**:

Difference between java.lang.RuntimeException and java.lang.Exception(12个答案)
2天前关闭。
我一直试图在程序中将图像保存为BufferedImage,但每次尝试设置文件路径名时,总是会导致IOException错误。

File grass = new File("C:\\\\Users\\user\\eclipse-workspace\\minecraft\\textures\\GRASS.png");
    
    private final BufferedImage grassTexture = ImageIO.read(grass);

    private final BufferedImage dirtTexture = ImageIO.read(new File("C:\\\\Users\\\\user\\\\eclipse-workspace\\\\minecraft\\\\textures\\\\DIRT.png"));

如你所见,我尝试了几种不同的反斜杠模式。
我使用Eclipse作为我的IDE,它给了我这个:
线程"main" java. lang中出现异常。错误:未解决的编译问题:未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException

at minecraft.MinecraftGame.<init>(MinecraftGame.java:28)
at minecraft.MinecraftGame.main(MinecraftGame.java:151)

如何防止此错误发生?

f0brbegy

f0brbegy1#

要习惯计算机程序在运行时可能会遇到问题的事实。这意味着并非一切都像开发人员所相信的那样顺利。
异常是报告错误的一种方式。防止它们意味着确保不会发生异常。很好,这是开发人员可能梦想过的完美情况。现实是不同的。
所以编译器只是警告你(开发者)你没有为可能出错的事实设计你的代码,魔法不是防止异常,而是定义在异常发生的情况下应该发生什么。
处理异常的一种方法(很多初学者都这么做)是捕捉异常,然后忘记它。一种更好的方法是标记你的方法,它可能抛出异常。如果你这样做,这意味着你的应用程序在任何错误时都会终止。但是用户会意识到这一点。作为开发人员,你可以学习何时想出更好的策略。
因此,将行更改为如下所示:

public static void main(String[] args) {

改为:

public static void main(String[] args) throws Exception {

直到你明白过来。

相关问题