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,这个是什么意思呢,求解释。
...全文
406 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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则是继续向上抛出异常,由其他专门处理异常的逻辑去判断异常种类并向用户输出错误提示
明白了,柳暗花明,谢谢!
ArchitectWesley 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 完全可以不需要!
饺克力克 2017-11-05
  • 打赏
  • 举报
回复
我们项目代码里面是捕获全部类型的异常 Exception e,然后抛出一个自定义的业务异常 throw BizException,因为自定义业务异常可以满足全局异常捕获和返回前端格式的需要,例如用SpringBoot的ExceptionHandler捕获以后,设置错误代码,设置错误内容,这样前端就可以判断成功与否和直接弹出错误提示了。 先捕获再抛出的作用是把异常交给更上层的代码去处理(调用方),但是不捕获可能无法通过编译。不重要的异常也可以不再抛出,直接在日志中记录即可。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧