<์์ธ & ์์ธํด๋์ค>
-์ปดํ์ผ๋ฌ ์ฒดํฌ ์์ธ : ํ๋ก๊ทธ๋จ ์์ฒด ์๋ฌ๊ฐ ์๋๋ผ ์ธ๋ถ์ ์ธ ์๋ฌ์ผ์์๊ณ , ๋ฌธ๋ฒ์ ์๋ชป ์ ์ ์๋ฌ์ด๊ธฐ๋ ํ๋ค.
-์คํ์์ธ(Runtime Exception) : ๋ฌธ๋ฒ์ ๋ฌธ์ ๋ ์์ง๋ง ๋ฌธ์ (์๋ฌ)๋ฐ์. => ์๋ฒฝํ ํ๋ก๊ทธ๋จ์ด ์กด์ฌํ์ง ์๋ค.
โถ์ฃผ์ ์คํ ์์ธ
โณ ์ต์์ ์์ธ ํด๋์ค : Exception โณ
1. NullPointerException
๊ฐ์ฒด ์ฐธ์กฐ๊ฐ ์๋ ์ํ(๋น์ด์๋ ์ํ), ์ฆ null๊ฐ์ ๊ฐ๋ ์ฐธ์กฐ ๋ณ์๋ก ๊ฐ์ฒด ์ ๊ทผ ์ฐ์ฐ์์ธ dot(.)๋ฅผ ์ฌ์ฉํ์ ๋ ๋ฐ์.
2. ArrayIndexOutOfBoundsException
๋ฐฐ์ด์์ ์ธ๋ฑ์ค ๋ฒ์ ์ด๊ณผํด ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฐ์.
3. NumberFormatException
๋ฌธ์์ด์ด ์ซ์๋ก ๋์ด์๋ ๋ฐ์ดํฐ๋ ์ซ์๋ก ๋ณ๊ฒฝํ ์ ์๋๋ฐ, ๋ณ๊ฒฝํ๋ ค๋ ๋ฌธ์์ด์ด ์ซ์๊ฐ ์๋๋ฐ๋ ์ซ์๋ก ๋ณ๊ฒฝํ๋ ค๊ณ ํ ๊ฒฝ์ฐ ๋ฐ์.
4. ClassCastException
ํ ๋ณํ์ ๋ถ๋ชจํด๋์ค์ ์์ํด๋์ค ๊ฐ์์ ๋ฐ์ํ๊ณ , ๊ตฌํ ํด๋์ค์ ์ธํฐํ์ด์ค ๊ฐ์๋ ๋ฐ์ํ๋ค. ์ด๋ฐ ๊ด๊ณ๊ฐ ์๋๋ฉด ๋ค๋ฅธ ํด๋์ค๋ก ํ์ ์ ๋ณํํ ์ ์๋ค. ๋ณํ๊ฐ๋ฅํ ํ์ ๊ด๊ณ๊ฐ ์๋๋ฐ ํ์ ๋ณํ ์ํค๋ ค๊ณ ํ๋๊ฒฝ์ฐ ์์ธ๋ฐ์.
<์์ธ ์ฒ๋ฆฌ๋ฐฉ๋ฒ>
1. try~catch~finally
โถ ์ผ๋ฐ์ ์ธ try~catch
- try๋ธ๋ก์๋ ์์ธ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋๋ฅผ ์์ฑ.
- try๋ธ๋ก์ ์ฝ๋ ์์ธ ๋ฐ์ ์์ด ์ ์์ ์ผ๋ก ์คํ๋ ๊ฒฝ์ฐ catch๋ธ๋ก์ ์คํ๋์ง ์์.
- ๋ง์ฝ try๋ด๋ถ์์ ์์ธ ๋ฐ์ํ๋ฉด ์ฆ์ ์คํ๋ฉ์ถ๊ณ , catch๋ธ๋ก์ผ๋ก ์ด๋ํด ์์ธ ์ฒ๋ฆฌ์ฝ๋ ์คํํจ.
1. NullPointerException์ฒ๋ฆฌ ๋ฐฉ๋ฒ
2. ArrayIndexOutOfException ์ฒ๋ฆฌ๋ฐฉ๋ฒ
3. Numberformat์ฒ๋ฆฌ๋ฐฉ๋ฒ
โถ try~catch~finally
- ์์ธ ๋ฐ์ ์ฌ๋ถ์ ์๊ด์์ด ํญ์ ์คํํ ๋ด์ฉ ์๋ค๋ฉด, finally๋ธ๋ก ๋ด๋ถ์ ์คํ ๋ด์ฉ ์์ฑํจ.
- try~catch~finally์์1
- try~catch~finally์์2
โถ ๋ค์ค catch(๋ ์ด์์ ์์ธ ์ฒ๋ฆฌ) - ์์ธ์ฒ๋ฆฌ ํด๋์ค๋ ์์ ๊ด๊ณ ๊ฐ์ง.
- try๋ธ๋ก ๋ด๋ถ๋ ๋ค์ํ ์ข ๋ฅ์ ์์ธ๊ฐ ๋ฐ์ํ ์ ์์. ์์ธ ์ฌ๋ฌ๊ฐ์ง ๋ฐ์ํ๋ฉด ๋ค์ค catch๋ธ๋ก ์์ฑํด ์์ธ๋ค์ ์ฒ๋ฆฌ.
- catch๋ธ๋ก์ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ๊ฒ์๋๋ฏ๋ก ์์ ํด๋์ค์ catch๋ธ๋ก์ด ์์ ์๋ค๋ฉด ํ์ ์์ธ ํด๋์ค์ catch๋ธ๋ก์ ์คํ๋์ง ์์.
- catch()๊ดํธ ์ ๋์ผํ๊ฒ ์ฒ๋ฆฌํ๊ณ ์ถ์ ์์ธ๋ฅผ | ๋ก ์ฐ๊ฒฐํ๋ฉด ๋จ. ์ด ๋ฐฉ์ ์ฌ์ฉํ ๋๋ ๋ ์์ธ ํด๋์ค ๊ด๊ณ๊ฐ ์์๊ด๊ณ์ด๋ฉด ์๋จ.
1. ๊ธฐ๋ณธ ๋ค์ค try~catch๋ฌธ(๋ค์ค catch๋ธ๋ก)
**์ฃผ์ํ ์ : ํ์ ์์ธ ํด๋์ค ์์๋ธ๋ก์ ๋จผ์ ์จ์ผํจ**
2. finally์์ try~catch๋ฌธ (catch๋ฌธ ์์ catch๋ฌธ)
3. ๋์ผํ๊ฒ ์ฒ๋ฆฌํ๊ณ ์ถ์ ์๋ฌํด๋์ค ๊ฐ์ catch๋ฌธ์์ ์ฌ์ฉ.
**์ฃผ์ํ ์ : ๊ฐ์ catch๋ฌธ ๋ด ํด๋์ค๋ ์์๊ด๊ณ์ฌ์๋ ์๋จ**
2. throws
-try~catch๊ตฌ๋ฌธ์ด ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์ง์ ํด๊ฒฐ ํ๊ณ ์ ํ๋ ์ฝ๋๋ผ๋ฉด throws๋ ๋ฉ์๋๋ ์์ฑ์๋ฅผ ํธ์ถํ ๊ณณ์ผ๋ก ์์ธ๋ฅผ ๋ ๋๊ธฐ๋ ์ฝ๋์ด๋ค.
-์์ธ์ฒ๋ฆฌ๋ฅผ ์ง์ ์ํํ์ง ์๊ณ ๋ฉ์๋ ํธ์ถ์์๊ฒ ์์ธ๋ฅผ ๋์ง๋ ๋ฐฉ๋ฒ.
- main๋ํ throws ์ฌ์ฉ๊ฐ๋ฅ.
++๊ฐ์ ์์ธ ๋ฐ์ ์ํค๊ธฐ : ์ฌ์ฉ์๊ฐ ์ง์ ์ ์ธํ ์์ธํด๋์ค / ์๋ฐ๊ฐ ์ ๊ณตํ๋ ์์ธAPI์์ ์์ธ ๊ฐ์ ๋ฐ์์ํค๋ ค๋ฉด throwํค์๋ ์ด์ฉ. -> ์์ธ๋ฅผ ๊ฐ์ ๋ก ๋ฐ์์ํค๋ฉฐ ๋ฉ์๋๋ฅผ ๊ฐ์ ์ข ๋ฃํจ. (throws์ ๊ฐ์ด ์ฌ์ฉ)
โถthrows ๊ธฐ๋ณธ ๊ตฌ๋ฌธ
โถ try~catch & throws
-throws ํค์๋๊ฐ ๋ถ์ด์๋ ๋ฉ์๋๋ ๋ฐ๋์ try๋ธ๋ก ๋ด๋ถ์์ ํธ์ถ๋์ด์ผ ํจ. ๊ทธ๋ฆฌ๊ณ catch๋ธ๋ก์์ ๋ ๋๊ฒจ ๋ฐ์ ์์ธ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ค.
โถthrow - ์๋ชป๋ ๊ฐ ์ ๋ฌ๋์๋ค ์๊ฐํ๋ฉด throw์ฌ์ฉํด ๊ฐ์ ์ข ๋ฃ์ํด
3. ์ฌ์ฉ์ ์ ์ ์์ธ
- ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด ์๋ฐ ํ์ค API์์ ์ ๊ณตํ๋ ์์ธ ํด๋์ค๋ง์ผ๋ก ๋ค์ํ ์ข ๋ฅ์ ์์ธ๋ฅผ ํํ๋ถ๊ฐ.
- ๊ฐ๋ฐ์๊ฐ ๋ง๋ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์์ฒด์ ์ผ๋ก ์๊ธธ ์ ์๋ ์์ธ๋ ๊ฐ๋ฐ์๊ฐ ์ง์ ์์ธ ํด๋์ค ์ ์ํด์ ๋ง๋ค์ด์ผํจ.
-์ฌ์ฉ์ ์ ์ ์์ธ ํด๋์ค๋ Exceptionํด๋์ค๋ฅผ ์์๋ฐ์ ์ฌ์ฉํ๋ฉด ๋จ.
-์ฌ์ฉ์ ์ ์ ์์ธ ํด๋์ค ์ด๋ฆ์ Exception์ผ๋ก ๋๋๋ ๊ฒ์ด ์ข์.
4. ์์ธ ์ถ๋ ฅ
-์์ธ ๋ฐ์์ ๋ณดํต ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ์คํ๋ฌธ์ ์์ฑํ๋ค.
-๋๋ก๋ ์์ธ๋ฅผ ์ถ๋ ฅํด์ ์ด๋์ ์์ธ๊ฐ ๋ฐ์ํ๋์ง, ์ด๋ค ์์ธ๊ฐ ๋ฐ์ํ๋์ง๋ฅผ ์ถ๋ ฅํด, ์์ธ๋ฅผ ๋นจ๋ฆฌ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ค.
- ์์ธ ์ถ๋ ฅ์ผ๋ก ์ธํด ์์ธ๋ฅผ ๋นจ๋ฆฌ ์ฒ๋ฆฌํ์ฌ, ๊ฐ๋ฐ ์๋๊ฐ ๋นจ๋ผ ์ง์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
'FOR SW ENGINEER๐ฉโ๐ป > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JAVA_API(java.langํจํค์ง) (0) | 2021.10.02 |
---|---|
JAVA_ Final(๋ณ๊ฒฝ ๊ธ์ง์ ๊ท์ ํค์๋) (0) | 2021.10.01 |
JAVA_์ธํฐํ์ด์ค(Interface) (0) | 2021.09.14 |
JAVA_์ถ์ํ(Abstract) (0) | 2021.09.13 |
JAVA_์ ์ ์ ํ์ (Static) (0) | 2021.09.12 |