我一直在尝试将图像保存为我的程序中的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.Error:未解决的编译问题未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException未处理的异常类型IOException
at minecraft.MinecraftGame.<init>(MinecraftGame.java:28)
at minecraft.MinecraftGame.main(MinecraftGame.java:151)
如何防止这个错误的发生?
要习惯计算机程序在运行时可能会遇到问题这一事实。这意味着并不是所有的事情都像开发人员想象的那样顺利。
异常是报告错误的一种方式。防止它们将意味着确保永远不会出现例外。很好,这是开发者梦寐以求的完美案例。
所以编译器只是警告你(开发人员),你没有为可能出错的事实设计你的代码。魔力不在于防止异常,而在于定义异常发生时应该发生什么。
处理的一种方法(许多初学者都这样做)是捕获异常并忘记它。一个更好的方法是标记你的方法可能会抛出异常。如果这样做,则意味着应用程序在出现任何错误时终止。但用户会意识到这一点。作为开发人员,你可以学习什么时候想出更好的策略。
那么把这些行改成这样:
public static void main(String[] args) {
到:
public static void main(String[] args) throws Exception {
直到你明白。