当前位置: 首页 > 知识库问答 >
问题:

JAVA错误:可以用捕获特定异常的multi-catch或几个catch子句替换

颛孙轩昂
2023-03-14
if(checkInputs() && imgPath != null){
try {
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO animal_information(animal_breed,animal_age,animal_found,animal_hairColor,"
                    + "animal_eyeColor,animal_specialTrait,animal_codeNumber,animal_image)"
                    + "values(?,?,?,?,?,?,?)");

//ps.setString(1, pawsId.getText());
ps.setString(1, pawsBreed.getText());
ps.setString(2, pawsAge.getText());

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String addDate = dateFormat.format(pawsDate.getDate());
ps.setString(3, addDate);
ps.setString(4, pawsHairColor.getText());
ps.setString(5, pawsEyeColor.getText());
ps.setString(6, pawsUniqueTrait.getText());

InputStream img = new FileInputStream(new File(imgPath));
ps.setBlob(7, img);
ps.executeUpdate();

JOptionPane.showMessageDialog(null, "Inserted Data Successfully");   
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
}
else{
JOptionPane.showMessageDialog(null, "One or More Fields Are Empty");
}
System.out.println("Breed => "+ pawsBreed.getText());
System.out.println("Age => "+ pawsAge.getText());
System.out.println("Hair Color => "+ pawsHairColor.getText());
System.out.println("Eye Color => "+ pawsEyeColor.getText());
System.out.println("Unique Traits => "+ pawsUniqueTrait.getText());
System.out.println("Image => "+ imgPath);
}

大家好!我只是一个学生和完全初学者学习Java。我遇到过这样的问题:“可以被替换为multi-catch或几个catch子句来捕获特定的异常”,在部分catch(Exception ex)的图像中,它有黄色的下划线颜色,这给了我一个错误。我想插入数据到我的数据库,但它没有插入,因为这个错误。正如您在我的代码中所看到的,我已经尝试打印数据,并且都很成功。能不能请谁来开导一下,帮帮我,我到底做错了什么。拜托...

共有1个答案

姚树
2023-03-14

黄线不是错误,而是警告或建议。

这意味着您的catch(Exception e)过于宽泛:它将适用于更多类型的异常,而不仅仅是可以抛出的异常。

有人可能引入了引发不同类型异常的新代码,他们可能不希望您的catch来处理它。因此,最佳实践是只处理可能的异常。

 try {
     ...
 }
 catch (FooException | BarException e) {
     ... handle both types of exception with the same code
 }
 try {
     ...
 }
 catch (FooException e) {
     ... handle FooException one way
 }
 catch (BarException e) {
     ... handle BarException differently
 }
 类似资料:
  • 问题内容: 在Java中,我想做这样的事情: …代替: 有什么办法吗? 问题答案: 从Java 7开始,这已经成为可能。多捕获块的语法为: 但是请记住,如果所有异常都属于同一类层次结构,则可以简单地捕获该基本异常类型。 还要注意,如果从ExceptionA直接或间接继承了ExceptionB,则不能在同一块中同时捕获ExceptionA和ExceptionB。编译器会抱怨:

  • 请求(正文)

  • 本文向大家介绍是否可以在单个catch块中捕获多个Java异常?,包括了是否可以在单个catch块中捕获多个Java异常?的使用技巧和注意事项,需要的朋友参考一下 例外是程序执行期间发生的问题(运行时错误)。发生异常时,程序会突然终止,并且生成异常的行之后的代码将永远不会执行。 代码中有多个异常 在Java 7之前,只要我们有一个可能会生成多个异常的代码,并且如果您需要专门处理该代码,则应在一次尝

  • 出于某种原因,这段代码给了我一个无法捕捉的异常错误。catch块似乎没有捕捉到错误。try catch块的作用范围是否如此,以至于我不能在嵌套函数中抛出一个错误,然后期望它被一个作用范围更高的catch语句捕获?我正在使用的应用程序中的一些敏感数据已经被删除,但它预期leadInfo[ 0 / 1]将是一个32个字符的字母数字字符串,我从URL参数中提取。 这里的根本问题是我的AJAX调用从API

  • 有效的Java编程语言代码必须满足异常的捕获或者声明(Catch or Specify Requirement) 。 可能抛出异常的代码必须是下列两种处理方式之一: 使用 try 捕获异常。try 必须提供处理器来处理异常,详见“异常捕获和处理”; 通过在方法签名中利用 throws 关键字,声明异常可以将异常抛出,将异常传递给调用者,自己可以不用处理。详见“通过方法声明异常抛出”。 所编写的代码

  • 在下面的示例中,您可以看到无法使用外部catch子句捕获IOException(命名为第四个)异常。这是为什么?我知道,如果在嵌套的try块中抛出异常,使用外部catch可以捕获异常。如果您将b静态变量值更改为false,那么您可以看到这一点。 但是为什么我们不能使用外部catch捕获在嵌套catch子句中抛出的异常呢? 如果b=真,则输出: fileNotFoundException:FIRST