You Can Become A
๋ฆ๊ฒ ์์ํด๋ ๋๊ตฌ๋ ์ง ๋ ธ๋ ฅํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ด์ !
์์ธ ์ฒ๋ฆฌ
โ Exception Handling - ์๋ฐ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ 3๊ฐ์ง ๊ธฐ๋ฒ
Exception Handling 3๊ฐ์ง ๊ธฐ๋ฒ ์๋ฐ์ ์์ธ๋ฅผ try - catch ๋ธ๋ญ์ผ๋ก ์ก์๋ค๊ณ ํด์ ๋์ด ์๋๋ค. ์์ธ๊ฐ ๋ฐ์ํ์์ผ๋ฉด ์ฝ๋๋ฅผ ์์ ํ์ฌ ๋ฌธ์ ์ ์ ๊ณ ์ณ์ผ ๋๋ ๊ฒ์ ๋ง์ง๋ง, ์์ํ ์ ์๋ ์์ธ์ธ ๊ฒฝ์ฐ ํํผ๋ฅผ ํ๊ฑฐ๋ ๋ณต๊ตฌ ๋์์ ํ๋ ๋ฑ ์์ธ๋ฅผ ํธ๋ค๋งํ์ฌ ์ฒ๋ฆฌํ๋ ๋ก์ง์ด ํ์ํ๋ค. ์์์น ๋ชปํ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ฅผ ๋จ์ํ catch๋ฌธ์ผ๋ก ์ก์ ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ์ ๋ ๋์, ์ค๋ฌด์์ ์ด๋ป๊ฒ ์์ธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๋์ง ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ์. ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์๋ ์์ธ ๋ณต๊ตฌ, ์์ธ ์ฒ๋ฆฌ ํํผ, ์์ธ ์ ํ ๋ฐฉ๋ฒ์ด ์๋ค. 1. ์์ธ ๋ณต๊ตฌ ์์ธ ์ํฉ์ ํ์ ํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ ์ ์ ์ํ๋ก ๋๋ ค๋๋ ๋ฐฉ๋ฒ Exception์ด ๋ฐ์ํ์ฌ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์์ ์ผ๋ก ๋์ ๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ..
โ ์๋ฐ Try With Resource ์์ธ ์ฒ๋ฆฌ
์๋ฐ Resource์ ์์ธ ์ฒ๋ฆฌ ๋ณดํต resource๋ ์ธ๋ถ์ ๋ฐ์ดํฐ(DB, Network, File)๋ฅผ ์ผ์ปซ๋๋ค. ์ด๋ฐ resource๋ค์ ์๋ฐ ๋ด๋ถ์ ์์นํ ์์๋ค์ด ์๋๊ธฐ ๋๋ฌธ์, ์ด๋ฌํ ํ๋ก์ธ์ค ์ธ๋ถ์ ์๋ ๋ฐ์ดํฐ์ ์๋ฐ ์ฝ๋์์ ์ ๊ทผํ๋ ค๊ณ ํ ๋ ๋ฌธ์ (์์ธ)๊ฐ ๋ฐ์ํ ์ ์๋ ์ฌ์ง๊ฐ ์กด์ฌํ๋ค. ํนํ๋ ์ด๋ฐ ์ ์ถ๋ ฅ์ ๊ด๋ จ๋ resource๋ค์ ์ ๊ทผํด์ ์ฌ์ฉํ๊ณ ๋๋ฉด ๋ซ๋ ๊ฒ์ด ๊ต์ฅํ ์ค์ํ๋ค. ์๋ฅผ๋ค์ด ํ์ผ์ ์ ๊ทผํด ํ์ผ์ ์ด๊ณ ๋ด์ฉ์ ์ฐ๊ณ ๋ํ ๊ผญ ๋ซ์ ์ฃผ์ด์ผ ํ๋ค. ์๋ํ๋ฉด ์ด๋ค resource๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ๋ค๋ฅธ๊ณณ์์ ๊ฐ์ resource์ ์ ๊ทผํด ๋ง ์ฌ์ฉํ๋ค ๋ณด๋ฉด ๊ผฌ์ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ด ์ธ๋ถ ํ ์คํธ ํ์ผ์ ์ ๊ทผํด์ ๋ด์ฉ์ ์ฐ๊ณ ๋ซ๋ ๋ก์ง์ ์๋ฐ์์ ๊ตฌํํ์๋ค. ๋ง์ผ..
โ ์๋ฐ ์์ธ ๋์ง๊ธฐ(throw) & ์์ธ ์ฐ๊ฒฐ(Chained Exception)
์์ธ ๋์ง๊ธฐ ์์ธ ๋ฐ์์ํค๊ธฐ (throw) ๋ง์ผ ํ๋ก๊ทธ๋จ์ ์ผ๋ก ์๋ฌ๊ฐ ์๋๋ผ๋ ๋ก์ง์ ๊ฐ๋ฐ์๊ฐ ์ผ๋ถ๋ฌ ์๋ฌ๋ฅผ ๋ด์ ๋ก๊ทธ์ ๊ธฐ๋กํ๊ณ ์ถ์ ์ํฉ์ด ์ฌ ์ ์๋ค. ์๋ฐ์์๋ throw ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ก ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ ์๋ค. ์๋๋ ํ๋ก๊ทธ๋จ์ด ์์์ ์๋ฌ๋ฅผ ํ์งํ๊ณ ์ฒ๋ฆฌ ํ์์ง๋ง, ์ด๋ฒ์๋ ์ฌ์ฉ์๊ฐ ์ผ๋ถ๋ฌ ์๋ฌ๋ฅผ throwํ์ฌ ์๋ฌ๋ฅผ catch ํ๋ค๋ ๊ฐ๋ ์ผ๋ก ๋ณด๋ฉด ๋๋ค. ์ด๋ new ์์ฑ์๋ก ์์ธ ํด๋์ค๋ฅผ ์ด๊ธฐํํ์ฌ ๋์ ธ๋๋ฐ, ์ด ํด๋์ค ์์ฑ์์ ์ ๋ ฅ๊ฐ์ ์ฃผ๊ฒ๋๋ฉด, catch๋ฌธ์ getMessage() ๋ฉ์๋์์ ์ถ๋ ฅํ ๋ฉ์ธ์ง๋ฅผ ์ง์ ํ๊ฒ ๋๋ค. import java.util.Scanner; public class Main { public static void main(String[] args) {..
โ ์๋ฐ ์์ธ ์ฒ๋ฆฌ(try catch) ๋ฌธ๋ฒ & ์์ฉ ์ ๋ฆฌ
์์ธ(Exception) ์ฒ๋ฆฌํ๊ธฐ ์์ธ ์ฒ๋ฆฌ(exception handling) ์ด๋, ํ๋ก๊ทธ๋จ ์คํ ์ ๋ฐ์ํ ์ ์๋ ์๊ธฐ์น ๋ชปํ ์์ธ์ ๋ฐ์์ ๋๋นํ ์ฝ๋๋ฅผ ์์ฑํ๋๊ฒ์ด๋ค. ์๋ฐ์ ์ฝ๋๋ฅผ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค๊ณ ํด์ ํ๋ก๊ทธ๋จ์ ์์ธ ์ํฉ ์์ฒด๋ฅผ ๋ง์ ์๋ ์๋ค. ์์ธ ์ฒ๋ฆฌ์ ๋ชฉ์ ์ ์์ธ์ ๋ฐ์์ผ๋ก ์ธํ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ๊ฐ์์ค๋ฐ ๋น์ ์์ ์ธ ๋์์ ๋ง๊ณ , ์๋ฌ๋ฅผ ์ก์ ๋ณต๊ตฌ๋ฅผ ์๋ํ๊ฑฐ๋ ์๋๋ฉด ํํผ ํ๋์์ผ๋ก ์ฒ๋ฆฌ๋ฅผํด์, ํ๋ก๊ทธ๋จ์ด ์ ์์ ์ธ ์คํ์ํ๋ฅผ ์ ์งํ ์ ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ์๋ฐ ์ฝ๋์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ์ตํ๊ธฐ ์ํด์๋ ๋จผ์ , ์๋ฐ์ ์๋ฌ์ ์์ธ์ ๊ตฌ๋ถ ๊ทธ๋ฆฌ๊ณ ์ปดํ์ผ ์๋ฌ / ๋ฐํ์ ์๋ฌ ์ ์ฐจ์ด์ Checked ์์ธ / UnChecked ์์ธ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ด ํ์ํ๋ค. ๋ง์ผ ์ด์ ๋ํ ์ง์์ด..