题主想知道的是怎么讲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 操作
我这里只是简单的举个例子, 其他相关可以搜索一下异常控制 业务流程 之类的