与尝试捕捉混乱花括号问题[关闭]

问题描述 投票:-2回答:1

我只是想使用try catch语句,但由于某种原因,只有当我做了以下工作:

{try {
    img = ImageIO.read(originalImageone);
    Image one= img.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgtwo = ImageIO.read(ogImagetwo);
    Image two = imgtwo.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgthree = ImageIO.read(Imagethree);
    Image three = imgthree.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgfour = ImageIO.read(Imagefour);
    Image four = imgfour.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgfive = ImageIO.read(Imagefive);
    Image five = imgfive.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgsix = ImageIO.read(Imagesix);
    Image six = imgsix.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgseven = ImageIO.read(Imageseven);
    Image seven = imgseven.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
    imgeight = ImageIO.read(Imageeight);
    Image eight = imgeight.getScaledInstance(512, 512, Image.SCALE_DEFAULT);
}catch(IOException e){
    e.printStackTrace();
}}

代码开头行上面的语句是:

 BufferedImage imgeight = null;

因此,出于某种原因,上述工作尽管有一个额外的大括号,你可以看到。每次我试图删除多余的花括号我得到一个错误。有人知道为什么是这样吗?

java try-catch
1个回答
2
投票

你显然是无意中发现了一个匿名的“静态初始化”块应用。 try和catch是只能“可执行”代码块等的方法(和静态块 - 在代码运行构造对象之前)内被找到的关键词。为了使它明确;尝试写这样的:

BufferedImage img = null;
...
BufferedImage imgeight = null;
static {
    try {
          ...
    }
    catch (Exception e) {
          ...
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.