๐Ÿ“•JAVA

[JAVA] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๋น™๋””์šฉ 2024. 5. 1.

- ์ž๋ฐ”๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•œ๋‹ค.

1. ์˜ˆ์™ธ๊ณ„์ธต

- ์ž๋ฐ”์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” try, catch, finally, throw, throws์™€ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

- Object : ์˜ˆ์™ธ๋„ ๊ฐ์ฒด์ด๋‹ค. ๋ชจ๋“  ๊ฐ์ฒด์˜ ์ตœ์ƒ์œ„ ๋ถ€๋ชจ๋Š” Object์ด๋ฏ€๋กœ ์˜ˆ์™ธ์˜ ์ตœ์ƒ์œ„ ๋ถ€๋ชจ๋„ Object ์ด๋‹ค

- Throwable : ์ตœ์ƒ์œ„ ์˜ˆ์™ธ. ํ•˜์œ„์— Exception๊ณผ Error๊ฐ€ ์žˆ์Œ

- Error : ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ์ด๋‚˜ ์‹ฌ๊ฐํ•œ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜์™€ ๊ฐ™์ด ์—ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ ์˜ˆ์™ธ.

- Exception : ์—ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ƒ์œ„ ์˜ˆ์™ธ

- RumtimeException : ์–ธ์ฒดํฌ ์˜ˆ์™ธ, ์ปจํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฒดํฌ ํ•˜์ง€ ์•Š๋Š” ์–ธ์ฒดํฌ ์˜ˆ์™ธ์ด๋‹ค.

2. ์˜ˆ์™ธ ๊ธฐ๋ณธ ๊ทœ์น™

- ์˜ˆ์™ธ๋Š” ์žก์•„์„œ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฐ–์œผ๋กœ ๋˜์ ธ์•ผ ํ•œ๋‹ค.

- ์˜ˆ์™ธ๋ฅผ ์žก๊ฑฐ๋‚˜ ๋˜์งˆ ๋•Œ ์ง€์ •ํ•œ ์˜ˆ์™ธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ ์˜ˆ์™ธ์˜ ์ž์‹๋“ค๋  ํ•จ๊ป˜ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

- Exception์„ ์ƒ์†๋ฐ›์œผ๋ฉด ์ฒดํฌ ์˜ˆ์™ธ๊ฐ€ ๋œ๋‹ค.

- RuntimeException์„ ์ƒ์† ๋ฐ›์œผ๋ฉด ์–ธ์ฒดํฌ ์˜ˆ์™ธ๊ฐ€ ๋œ๋‹ค.

- ์˜ˆ์™ธ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ค‘ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š”๋ฐ, super(message)๋กœ ์ „๋‹ฌ๋œ ๋ฉ”์‹œ์ง€๋Š” Throwable์— ์žˆ๋Š” detailMessage์— ๋ณด๊ด€๋˜๋ฉฐ getMessage๋ฅผ ํ†ตํ•ด ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์˜ˆ์™ธ๋Š” ํ•˜์œ„ํƒ€์ž…์„ ๋˜์ง€๊ณ  ์žก๋Š”๊ฑฐ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค.

- ์ฒดํฌ ์˜ˆ์™ธ๋Š” ๋˜์งˆ์ง€ ์žก์„์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

* ์ฒดํฌ ์˜ˆ์™ธ์˜ ์žฅ๋‹จ์ 

- ์ฒดํฌ ์˜ˆ์™ธ๋Š” ์˜ˆ์™ธ๋ฅผ ์žก์„ ์ˆ˜ ์—†์„ ๋•Œ, ์˜ˆ์™ธ๋ฅผ ๋ฐ–์œผ๋กœ ๋˜์ง€๋Š” throws ์˜ˆ์™ธ๋ฅผ ํ•„์ˆ˜๋กœ ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•จ

- ์žฅ์  : ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ๋ˆ„๋ฝํ•˜์ง€ ์•Š๋„๋ก ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ์žก์•„์ฃผ๋Š” ํ›Œ๋ฅญํ•œ ์•ˆ์ „ ์žฅ์น˜์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์–ด๋–ค ์ฒดํฌ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•… ๊ฐ€๋Šฅํ•˜๋‹ค.

- ๋‹จ์  : ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ๋“  ์˜ˆ์™ธ๋ฅผ ๋ฐ˜๋“œ์‹œ ์žก๊ฑฐ๋‚˜ ๋˜์ง€๋„๋ก ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด ๋œ๋‹ค(ํฌ๊ฒŒ ์‹ ๊ฒฝ์“ฐ๊ณ  ์‹ถ์ง€ ์•Š์€ ์˜ˆ์™ธ๊นŒ์ง€ ๋ชจ๋‘ ์ฑ™๊ฒจ์•ผํ•จ)

3. ์–ธ์ฒดํฌ ์˜ˆ์™ธ

- RuntimeErxception๊ณผ ํ•˜์œ„ ์˜ˆ์™ธ๋Š” ์–ธ์ฒดํฌ ์˜ˆ์™ธ๋กœ ๋ถ„๋ฅ˜๋จ

- ์–ธ์ฒดํฌ ์˜ˆ์™ธ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜ˆ์™ธ๋ฅผ ์ฒดํฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป

- ์–ธ์ฒดํฌ ์˜ˆ์™ธ๋Š” ์ฒดํฌ ์˜ˆ์™ธ์™€ ๋™์ผํ•˜๋‚˜ throws๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š๊ณ  ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค(์ž๋™์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง)

 

* ์–ธ์ฒดํฌ ์˜ˆ์™ธ์˜ ์žฅ๋‹จ์ 

- ์žฅ์  : ์‹ ๊ฒฝ์“ฐ๊ณ  ์‹ถ์ง€ ์•Š์€ ์–ธ์ฒดํฌ ์˜ˆ์™ธ๋ฅผ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋‹จ์  : ์–ธ์ฒดํฌ ์˜ˆ์™ธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ์˜ˆ์™ธ๋ฅผ ๋ˆ„๋ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- ์ฐธ๊ณ  : ๊น€์˜ํ•œ์˜ ์‹ค์ „ ์ž๋ฐ” - ์ค‘๊ธ‰ 1ํŽธ

๋Œ“๊ธ€