try里面包含另一个try的目的是什么呢?用来区分不同的throw的内容吗

来源:4-5 店铺注册之Service层的实现

慕尼黑3014154

2020-06-12

老师在ShopServiceImpl里的关于addShop的代码是这样子的,我不太明白为什么要在try里面再加一个try呢?是为了区分三个不同的throw的内容吗

try {
			// 给店铺信息赋初始值
			shop.setEnableStatus(0);
			shop.setCreateTime(new Date());
			shop.setLastEditTime(new Date());
			// 添加店铺信息
			int effectedNum = shopDao.insertShop(shop);
			if (effectedNum <= 0) {
				throw new ShopOperationException("店铺创建失败");
			} else {
				if (thumbnail.getImage() != null) {
					// 存储图片
					try {
						addShopImg(shop, thumbnail);
					} catch (Exception e) {
						throw new ShopOperationException("addShopImg error:" + e.getMessage());
					}
					// 更新店铺的图片地址
					effectedNum = shopDao.updateShop(shop);
					if (effectedNum <= 0) {
						throw new ShopOperationException("更新图片地址失败");
					}
				}
			}
		} catch (Exception e) {
			throw new ShopOperationException("addShop error:" + e.getMessage());
		}
写回答

1回答

翔仔

2020-06-13

同学好,主要是为了捕获

int effectedNum = shopDao.insertShop(shop);

的异常的。

后续我们会升级成统一异常处理,然后去掉所有的try catch简化代码

0
0

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程