java怎么捕获mysql异常_java项目中如何捕获异常与抛出异常及打印日志?

题主想知道的是怎么讲java的异常应用到实际项目中吧

举个例子:

场景:假设现在我们有个货物表,记录了商品名称和剩余数量

其中笔(pen) 有10支.

现在需要写一个业务,减少笔的数量

如果笔数量不足,则通知进货

大致流程

注意以下几点:1.其中getPen 方法返回结果信息给用户

有2次数据库操作

返回信息是boolean, 但是在实际写代码是我们能知道,如果返回false ,虽然告诉了操作失败,但是失败原因可能是余货不足 .数据库异常 网络异常 , 而且通知进货 写到了获取笔的流程里面, 造成代码耦合,不利于进一步的开发.如果使用其他自定义返回值,还需要在外边进行if/else的判断

现在来看,引入异常处理的流程

需要创建一个自定义货物不足异常NeedPenException (继承RuntimeException)

红字部分是修改的地方,现在我们再看看getPen 方法,的调用

try {

int number = 5;

getPen(number);

} catch (NeedPenException needPenException) {

//通知笔需要进货

System.out.println("货物不足:" + needPenException.getMessage());

} catch (SQLException sqlException) {

System.out.println("SQL异常:" + sqlException.getMessage());

} catch (IOException ioException) {

System.out.println("网络异常:" + ioException.getMessage());

}

这里我将异常都处理了,实际使用时,也可以在不同代码层级对相应的异常进行捕获

通过异常处理我们得到了这些好处:扩展了方法的返回信息

减少了对数据库异常的无意义Try/catch

将通知货物不足从获取笔的代码中解耦出来

由于抛出异常能够中断当前代码块执行,也能减少大量的if/else 操作

我这里只是简单的举个例子, 其他相关可以搜索一下异常控制 业务流程 之类的

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

阿犇Aben

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值