DAY 13
๐ย ์ค๋ ์ฝ์ ๋ฒ์ : 7์ฅ, ์ค๋ฅ ์ฒ๋ฆฌ
<aside>
๐ ์ฑ
์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์.
</aside>
- ๊นจ๋ํ ์ฝ๋์ ์ค๋ฅ ์ฒ๋ฆฌ๋ ํ์คํ ์ฐ๊ด์ฑ์ด ์๋ค. ์๋น์์ฝ๋ ๊ธฐ๋ฐ์ ์ ์ ์ผ๋ก ์ค๋ฅ ์ฒ๋ฆฌ ์ฝ๋์ ์ข์ฐ๋๋ค.
- ์ค๋ฅ ์ฝ๋ ๋ณด๋ค ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ - ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์์ธ๋ฅผ ๋์ง๋ ํธ์ด ๋
ผ๋ฆฌ๊ฐ ์ค๋ฅ ์ฒ๋ฆฌ ์ฝ๋์ ๋ค์์ด์ง ์๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ๋ ๊น๋ํด์ง๋ค
- Try-Catch-Finally๋ฌธ๋ถํฐ ์์ฑํ๋ผ - try๋ธ๋ก์์ ๋ฌด์จ์ผ์ด ์๊ธฐ๋ ์ง catch ๋ธ๋กใ
ใด ํ๋ก๊ทธ๋จ ์ํ๋ฅผ ์ผ๊ด์ฑ ์๊ฒ ์ ์งํด์ผ ํ๋ค. ๊ฐ์ ๋ก ์์ธ๋ฅผ ์ผ์ผํค๋ ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ ํ ํ
์คํธ๋ฅผ ํต๊ณผํ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ถ์ฅํ๋ค.
- ๋ฏธํ์ธ(unchecked) ์์ธ๋ฅผ ์ฌ์ฉํ๋ผ
- ์์ธ์ ์๋ฏธ๋ฅผ ์ ๊ณตํ๋ผ - ์ค๋ฅ ๋ฉ์์ง์ ์ ๋ณด๋ฅผ ๋ด์ ์์ธ์ ํจ๊ป ๋์ง๋ค. ์คํจํ ์ฐ์ฐ ์ด๋ฆ๊ณผ ์คํจ ์ ํ๋ ์ธ๊ธํ๋ค.
- ํธ์ถ์๋ฅผ ๊ณ ๋ คํด ์์ธ ํด๋์ค๋ฅผ ์ ์ํ๋ผ - ์ค๋ฅ๊ฐ ๋ฐ์ํ ์์น๋ก ๋ถ๋ฅ๊ฐ ๊ฐ๋ฅํ๋ค. ์ค๋ฅ๋ฅผ ์ ์ํ ๋ ํ๋ก๊ทธ๋๋จธ์๊ฒ ๊ฐ์ฅ ์ค์ํ ๊ด์ฌ์ฌ๋ ์ค๋ฅ๋ฅผ ์ก์๋ด๋ ๋ฐฉ๋ฒ์ด ๋์ด์ผ ํ๋ค.
- ์ ์ ํ๋ฆ์ ์ ์ํ๋ผ - ํน์ ์ฌ๋ก ํจํด(special case pattern) : ํด๋์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ๊ฐ์ฒด๋ฅผ ์กฐ์ํด ํน์ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- null์ ๋ฐํํ์ง ๋ง๋ผ - ๋ฉ์๋์์ null์ ๋ฐํํ๊ณ ํ ์ ํน์ด ๋ ๋ค๋ฉด ๊ทธ ๋์ ์์ธ๋ฅผ ๋์ง๊ฑฐ๋ ํน์ ์ฌ๋ก ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
- null์ ์ ๋ฌํ์ง ๋ง๋ผ - ์ ์ด์ null์ ๋๊ธฐ์ง ๋ชปํ๋๋ก ๊ธ์งํ๋ ์ ์ฑ
์ด ํฉ๋ฆฌ์ ์ด๋ค.
<aside>
๐ค ์ค๋ ์ฝ์ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋ณด์ธ์
</aside>
๋๋ ๊ฐ์ธ์ ์ผ๋ก try-catch๋ฌธ์ด ๋ญ๊ฐ ๋๋ฌ์ด ๋๋์ด ๋์ ์ต๋ํ ์์ฐ๋ ค๊ณ ํ๋๋ฐ ์ ๋ง ๋ฐ๋ณด๊ฐ์ ์ง์ด์๊ตฌ๋.. try-catch๋ฅผ ์ ํ์ฉํด์ ํด๋ฆฐ์ฝ๋๊ฐ ์ข๋ ์์ ์ฑ์ด ๋์ ์ฝ๋๊ฐ ๋๋๋ก ๋
ธ๋ ฅํด์ผ๊ฒ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ค์ณ ์ง๋๊ฐ ์๋ง์ null์ ์ ๋ฌํ๊ณ ๋ฐํํ๋ ํจ์๋ค... ๋ฐ์ฑํฉ๋๋ค.
<aside>
๐ ๊ถ๊ธํ ๋ด์ฉ์ด ์๊ฑฐ๋, ์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ด๋ณด์ธ์.
</aside>
- ๋ฏธํ์ธ ์์ธ -
- checked ์์ธ๋ ์ปดํ์ผ ๋จ๊ณ์์ ํ์ธ๋๋ฉฐ ๋ฐ๋์ ์ฒ๋ฆฌํด์ผ ํ๋ ์์ธ -IOException, SQLException
- unchecked ์์ธ๋ ์คํ๋จ๊ณ์์ ํ์ธ๋๋ฉฐ ๋ช
์์ ์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ์ง ์๋ ์์ธ - NullPointerException, IllegalArgumentException ...
- ๋ด๊ฐ ์ํ๋ฉด unchecked ์์ธ, checked์์ธ๋ฅผ ๊ณจ๋ผ์ธ์ ์๋๊ฑด๊ฐ.. ์ดํด๊ฐ ์๋๋ ๋ถ๋ถ์ด๋ค.
๊ธฐ๋กํ์ TIL์ ๊ณต์ ํด์ฃผ์ธ์ - TIL ์ถ์ํ
ํด๋ฆฐ์ฝ๋_์ค์ผ์ฅด๋ฌ_TIL ์ถ์ํ (๋
ธ๊ฐ๋ถ1๊ธฐ)