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

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

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。如:

@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下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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