老师帮忙看下为什么这里用两个try catch?

老师帮忙看下为什么这里用两个try catch?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package com.imooc.jdbc.demo1;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
import org.junit.Test;
 
public class JDBCTEST {
    @Test
    public void test() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            try {
                Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest""root""abc");
                String sql="select *from goods";
                Statement stmt=conn.createStatement();
                ResultSet resultSet=stmt.executeQuery(sql);
                while(resultSet.next()) {
                    int id =resultSet.getInt("id");
                    String name=resultSet.getString("name");
                    float price=resultSet.getFloat("price");
                    String desp=resultSet.getString("desp");
                    System.out.println(id+"  "+name+"  "+price+"  "+desp);
                }
            catch (SQLException e) {
                 
                e.printStackTrace();
            }
             
        catch (ClassNotFoundException e) {
             
            e.printStackTrace();
        }
    }
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕阿满 2019-01-17 18:57:56

同学你好,这是同学自己写的代码吗?可以去掉一个try-catch,在catch中捕获所有异常的父类Exception。如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Test
    public void test() {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbctest""root""abc");
            String sql = "select *from goods";
            Statement stmt = conn.createStatement();
            ResultSet resultSet = stmt.executeQuery(sql);
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                float price = resultSet.getFloat("price");
                String desp = resultSet.getString("desp");
                System.out.println(id + "  " + name + "  " + price + "  " + desp);
            }
 
        catch (Exception e) {
 
            e.printStackTrace();
        }
 
    }

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 Clark_Chan #1
    是因为那个连接语句报错Class.forName这句报错了,提示说有unhandled exception ClassNotException,如果不多加个try catch的话,eclipse自动提示需要添加。
    2019-01-18 10:46:03
  • 好帮手慕阿满 回复 提问者 Clark_Chan #2
    同学你好,同学可以在最后捕获所有异常的父类Exception,如上述代码,将try所有可能出现的异常使用Exception捕获,即可只使用一次try-catch。祝:学习愉快~
    2019-01-18 14:02:31
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码