JDBC异常处理疑惑

shangcunshanfu 2017-11-05 02:06:13
//建立连接
public static Connection getConnection() throws SQLException{
Connection conn=null;

try {
conn=DriverManager.getConnection(url, userName, password);
} catch (SQLException e) {
e.printStackTrace();
throw e;
}
return conn;
}


在学习JDBC时,在工具类里见到了这样一种写法,在工具类中将异常捕获,然后又抛出一个新的异常throw e,这个是什么意思呢,求解释。
...全文
335 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Sunyiban 2017-11-06
很明显这是反面例子。+1 也或许是这个调用类需要统一异常处理,反正我觉着这么写是反面教材
  • 打赏
  • 举报
回复
幽饮烛 2017-11-06
很明显这是反面例子。 编码规范不允许用 printStackTrace 记录日志。 如果不记录日志或其它操作,不需要 try catch。
  • 打赏
  • 举报
回复
枫醉秋 2017-11-06
好好看看java基础吧,书上面讲的很详细
  • 打赏
  • 举报
回复
shangcunshanfu 2017-11-06
引用 7 楼 reszzzlx的回复:
你的e.printstacktrace只是在你开发的时候用到,实际场景中出现异常也不允许抛出一堆错误信息给用户,throw e则是继续向上抛出异常,由其他专门处理异常的逻辑去判断异常种类并向用户输出错误提示
明白了,柳暗花明,谢谢!
  • 打赏
  • 举报
回复
ITLockie 2017-11-06
都catch了还throw,都throws 了还trycatch,看不懂
  • 打赏
  • 举报
回复
luluxiu0jc 2017-11-06
有try catch就不用throws啦
  • 打赏
  • 举报
回复
reszzzlx 2017-11-06
你的e.printstacktrace只是在你开发的时候用到,实际场景中出现异常也不允许抛出一堆错误信息给用户,throw e则是继续向上抛出异常,由其他专门处理异常的逻辑去判断异常种类并向用户输出错误提示
  • 打赏
  • 举报
回复
zzxiaoma 2017-11-05
是为了向上提示这里出错了,由上一级来进行处理,不抛出的话需要调用方法本身去处理
  • 打赏
  • 举报
回复
way_0216 2017-11-05
这些问题其实要看你在那一层解决这些异常问题,如果你的异常信息不在数据持久层处理的话,里面的try catch 完全可以不需要!
  • 打赏
  • 举报
回复
mrbjy 2017-11-05
我们项目代码里面是捕获全部类型的异常 Exception e,然后抛出一个自定义的业务异常 throw BizException,因为自定义业务异常可以满足全局异常捕获和返回前端格式的需要,例如用SpringBoot的ExceptionHandler捕获以后,设置错误代码,设置错误内容,这样前端就可以判断成功与否和直接弹出错误提示了。 先捕获再抛出的作用是把异常交给更上层的代码去处理(调用方),但是不捕获可能无法通过编译。不重要的异常也可以不再抛出,直接在日志中记录即可。
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2017-11-05 02:06
社区公告
暂无公告