back-end-study / effective-java

๐Ÿ”ฅ ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” ์Šคํ„ฐ๋””
42 stars 4 forks source link

checked exception๊ณผ unchecked exception์˜ ์ฐจ์ด? #3

Open jun108059 opened 2 years ago

lsj8367 commented 2 years ago

์ œ๊ฐ€ ์ด๊ฑธ ๊ณต๋ถ€ํ•œ ๊ฐœ๋…์œผ๋กœ ์ •๋ฆฌํ•˜๋ฉด checked exception์€ Exception์„ ํฌํ•จํ•˜๊ณ  RuntimeException์„ ์ƒ์†๋ฐ›์ง€ ์•Š์€ ํด๋ž˜์Šค๋“ค ์ž…๋‹ˆ๋‹ค. unchecked exception์€ RuntimeException์„ ์ƒ์†ํ•œ ํด๋ž˜์Šค๋“ค์ž…๋‹ˆ๋‹ค.

checked exception์€ throws๋ฅผ ์ด์šฉํ•˜์—ฌ ๋˜์ง€๊ฒŒ ์„ ์–ธํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ ์•„๋ฌด ์กฐ์น˜๋„ ํ•˜์ง€์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  try~catch๋‚˜ throws๋กœ ๋” ์ƒ์œ„์˜ ๋ฉ”์†Œ๋“œ์— ๋˜์ง€๊ฑฐ๋‚˜ ๋‘˜์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฌด์กฐ๊ฑด ์ฒ˜๋ฆฌ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋Œ€๋กœ unchecked exception์€ throws๋ฅผ ํ•ด๋„ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋กœ ์žกํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ throws๋ฅผ ํ•ด์ฃผ๋Š”๊ฑด ๋ช…์‹œ์ ์œผ๋กœ ~~~ํ•œ ์—๋Ÿฌ๋ฅผ ๋˜์ง„๋‹ค. ๋ผ๋Š” ์˜๋ฏธ๋กœ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

spring ์—์„œ๋Š” @Transactional์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ checked exception์ด๋ฉด rollback์„ ํ•˜์ง€ ์•Š๊ณ , unchecked exception์ด๋ฉด rollback์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ,

์ด๋Š” ๊ณ ์ •์ ์ธ ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ, ์–ด๋””๊นŒ์ง€๋‚˜ ๊ธฐ๋ณธ๊ฐ’์ด๊ณ  ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋ฉด ์–ด๋…ธํ…Œ์ด์…˜ ์•ˆ์˜ rollbackFor๋‚˜, noRollbackFor ๋“ฑ์„ ํ†ตํ•ด checked exception์„ rollbackํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ unchecked exception์„ rollbackํ•˜์ง€ ์•Š๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ ์ •๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™์€๋ฐ ์ง€์ ํ•ด์ฃผ์‹œ๋ฉด ํ™˜์˜์ž…๋‹ˆ๋‹ค. ๐Ÿ™

gnoyes-mik commented 2 years ago

์Šน์žฌ๋‹˜ ์˜๊ฒฌ์ฒ˜๋Ÿผ spring ์—์„œ๋Š” @Transactional์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ checked exception์ด๋ฉด rollback์„ ํ•˜์ง€ ์•Š๊ณ , unchecked exception์ด๋ฉด rollback์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, ~~~ ์— ์ €๋„ ๊ฐ™์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค

๊ด€๋ จ ์ •๋ณด์— ๋Œ€ํ•ด์„œ ๋” ์ฐพ์•„๋ดค์—ˆ์—ˆ๋Š”๋ฐ Spring์—์„œ ์ตœ์ดˆ์— @Transactional ์„ ๊ตฌํ˜„ํ•  ๋•Œ EJB ์ŠคํŽ™์„ ์ฐธ๊ณ ํ•ด์„œ ๋งŒ๋“ค๋‹ค ๋ณด๋‹ˆ ๊ธฐ๋ณธ๊ฐ’์„ ์ €๋ ‡๊ฒŒ ์„ค์ •ํ–ˆ๋‹ค๊ณ  ์•Œ๊ณ ์žˆ์–ด์š” ใ…Žใ…Ž

๋˜, ์ถ”๊ฐ€์ ์œผ๋กœ CheckedException์„ Handlingํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ฐœ์ธ์ ์ธ ๊ฒฌํ•ด๋ฅผ ๋ง๋ถ™์ด์ž๋ฉด CheckedException์ด ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ตœ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ UncheckedException์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฐฉํ–ฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค

ํ˜น์‹œ ์ œ๊ฐ€ ์ž˜๋ชป ์•Œ๊ณ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฉด ํ”ผ๋“œ๋ฐฑ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ™‚

youngreal commented 2 years ago

๋‘๋ถ„์ด ์„ค๋ช…์„ ์ž˜ํ•ด์ฃผ์‹ ๊ฒƒ ๊ฐ™์•„์„œ ์ €๋„ ์ด์ „์— ๊ณต๋ถ€ํ–ˆ๋˜ ํŠธ๋žœ์žญ์…˜ ๋กค๋ฐฑ ๋‚ด์šฉ ์˜ฌ๋ ค๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค Unchecked Exception ๋กค๋ฐฑ ์—ฐ์Šต์ฝ”๋“œ

์ž๋ฐ”์˜ check exception, uncheck excpeption ์™œ๊ทธ๋ ‡๊ฒŒ ์„ค๊ณ„๋œ๊ฑธ๊นŒ? ์˜ค๋ผํด ๋ฌธ์„œ

์„ค๊ณ„ ์˜๋„