๐ฏ ์์ดํ 70. ๋ณต๊ตฌํ ์ ์๋ ์ํฉ์๋ ๊ฒ์ฌ ์์ธ๋ฅผ, ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ์๋ ๋ฐํ์ ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ.
- ํธ์ถํ๋ ์ชฝ์์ ๋ณต๊ตฌํ๋ฆฌ๋ผ ์ฌ๊ฒจ์ง๋ ์ํฉ์ด๋ผ๋ฉด ๊ฒ์ฌ ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ.
/**
* ๋ฉ๋ด ๋ฑ๋ก
* @param menuVO
* @throws Exception
*/
public void insertMenu(MenuVO menuVO) throws SQLException{
menuVO.setMenuSn(menuSnIdService.getNextStringId());
int dept = 1;
if(CommonConstants.INNO_ROOT_SN.getValue().equals(menuVO.getSupiMenuSn())){
menuVO.setDept(dept);
} else {
menuVO.setDept(menuMapper.selectDeptBySupiMenuSn(menuVO)+1);
}
menuMapper.insertAdminMenu(menuVO);
}
์ ์ฝ๋๋ ๋ฉ๋ด๋ฅผ ๋ฑ๋กํ๋ ํจ์๋ก ํธ์ถํ๋์ชฝ์์ ๋ณต๊ตฌ(ํธ๋์ญ์
์ฒ๋ฆฌ)๋ฅผ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฒ์ฌ ์์ธ์ธ SQLException
์ ์ฌ์ฉํ๋ค.
- ํ๋ก๊ทธ๋๋ฐ ์ค๋ฅ๋ฅผ ๋ํ๋ผ ๋๋ ๋ฐํ์ ์์ธ๋ฅผ ์ฌ์ฉํ์.
private void validateDuplicateMember(Member member) {
List<Member> findMembers = memberRepository.findByName(member.getName());
if (!findMembers.isEmpty()){
throw new IllegalStateException("์ด๋ฏธ ์กด์ฌํ๋ ํ์์
๋๋ค.");
}
}
์ ์ฝ๋๋ ํ์ ์ค๋ณต ๊ฒ์ฌ๋ฅผ ํ๋ ํจ์๋ก ํด๋ผ์ด์ธํธ์์ API ๋ช
์ธ์ ๊ท์ฝ์ ์งํค์ง ๋ชปํ์ฌ ๋ฐ์ํ๋ ์์ธ์ด๋ฏ๋ก ์ ์ ํ ๋ฉ์์ง์ ํจ๊ป ์ค๋จ์ํจ๋ค.
๊ฒ์ฌ ์์ธ๋ ์๋๊ณ ๋ฐํ์ ์์ธ๋ ์๋ throwable
์ ์ ์ํ์ง๋ ๋ง์. ์คํ๋ ค ๊ฐ๋ฐ์๋ค์ ํท๊ฐ๋ฆฌ๊ฒํ ๋ฟ์ด๋ค. ๊ฒ์ฌ ์์ธ๋ผ๋ฉด ๋ณต๊ตฌ์ ํ์ํ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ ๋ฉ์๋๋ ์ ๊ณตํ์.
์ฐธ๊ณ ์๋ฃ
Joshua Bloch, ใEffective Java 3/Eใ, ๊ฐ์๋งต์ ์ฎ๊น, ํ๋ก๊ทธ๋๋ฐ์ธ์ฌ์ดํธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=