๋ธ๋ก๊ทธ ์ฎ๊ฒผ์ต๋๋ค! ๐ก integer.blog
์๋ฐ์ ์ ์(๋จ๊ถ์ฑ ์ ) ํ์ต๋ด์ฉ ์ ๋ฆฌ
1. ์์ธ ์ฒ๋ฆฌ (Exception handling)
- ์๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ(OutOfMemoryError)์ด๋ ์คํ์ค๋ฒํ๋ก์ฐ(StackOverFlowError)์ฒ๋ผ ์ผ๋จ ๋ฐ์ํ๋ฉด ๋ณต๊ตฌํ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ
- ์์ธ๋ ๋ฐ์ํ๋๋ผ๋ ์์ต๋ ์ ์๋ ์ค๋ฅ
2. ์์ธ ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ
- Object
- Throwable
- Exception
- RuntimeException
- ArithmeticException
- ClassCastException
- NullPointerException
- IndexOutOfBoundException
- IOException
- Error
- ์์ธ ํด๋์ค๋ Exception ํด๋์ค์ ์์๋ค๊ณผ RuntimeException ํด๋์ค์ ์์๋ค๋ก ๋๋๋ค.
- Exception ํด๋์ค๋ค : ์ฌ์ฉ์์ ์ค์์ ๊ฐ์ ์ธ์ ์ธ ์์ธ์ ์ํด ๋ฐ์ํ๋ ์์ธ
- RuntimeException ํด๋์ค๋ค : ๊ฐ๋ฐ์์ ์ค์๋ก ๋ฐ์ํ๋ ์์ธ
- ๋ชจ๋ ์์ธ ํด๋์ค๋ Exception ํด๋์ค์ ์์์ด๋ฏ๋ก, catch๋ธ๋ญ์ ๊ดํธ()์ Exceptionํด๋์ค ํ์ ์ ์ฐธ์กฐ๋ณ์๋ฅผ ์ ์ธํ๋ฉด, ์ด๋ค ์ข ๋ฅ์ ์์ธ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ด catch๋ธ๋ญ()์ ์ํด์ ์ฒ๋ฆฌ๋๋ค.
3. printStackTrace()์ getMessage()
- ์์ธ๊ฐ ๋ฐ์ํ์ ๋ ์์ฑ๋๋ ์์ธ ํด๋์ค์ ์ธ์คํด์ค์๋ ๋ฐ์ํ ์์ธ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ฒจ์ ธ ์์ผ๋ฉฐ, getMessage()์ printStackTrace()๋ฅผ ์ฌ์ฉํด์ ์ด ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ค.
printStackTrace()
: ์์ธ๋ฐ์ ๋น์์ ํธ์ถ์คํ(Call Stack)์ ์์๋ ๋ฉ์๋์ ์ ๋ณด์ ์์ธ ๋ฉ์ธ์ง๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.getMessage()
: ๋ฐ์ํ ์์ธํด๋์ค์ ์ธ์คํด์ค์ ์ ์ฅ๋ ๋ฉ์ธ์ง๋ฅผ ์ป์ ์ ์๋ค.
4. ๋ฉํฐ catch ๋ธ๋ญ
- JDK1.7๋ถํฐ ์ฌ๋ฌ catch๋ธ๋ญ์
|
๊ธฐํธ๋ฅผ ์ด์ฉํด์ ํ๋์ catch ๋ธ๋ญ์ผ๋ก ํฉ์น ์ ์๋ค.try { ... } catch (ExceptionA e) { e.printStackTrace(); } catch (ExceptionB e2) { e2.printStacktrace(); }
- ์ด try-catch ๋ฌธ์ ์๋์ ๊ฐ์ด ๋ฐ๊ฟ ์ ์๋ค.
try { ... } catch (ExceptionA | ExceptionB e) { e.printStackTrace(); }
- ๋จ, ์์ธํด๋์ค๋ค์ด ์กฐ์-์์ ๊ด๊ณ์ ์์ผ๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.(๋ถํ์ํ ์ฝ๋๋ ์ ๊ฑฐํ๋ผ๋ ์๋ฏธ์ ์๋ฌ)
5. ๋ฉ์๋์ ์์ธ ์ ์ธ
- ๋ฉ์๋์ ์์ธ๋ฅผ ์ ์ธํ๋ ๋ฐฉ๋ฒ
void method() throws Exception1, Exception2, ... ExceptionN { ... }
- ๋ฉ์๋์ ์ ์ธ๋ถ์ ์์ธ๋ฅผ ์ ์ธํจ์ผ๋ก์จ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ค๋ ์ฌ๋์ด ๋ฉ์๋์ ์ ์ธ๋ถ๋ฅผ ๋ณด์์ ๋, ์ด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ด๋ ํ ์์ธ๋ค์ด ์ฒ๋ฆฌ๋์ด์ ธ์ผ ํ๋์ง ์ฝ๊ฒ ์ ์ ์๋ค.
6. finally ๋ธ๋ญ
- finally ๋ธ๋ญ์ try-catch๋ฌธ๊ณผ ํจ๊ป ์์ธ์ ๋ฐ์์ฌ๋ถ์ ์๊ด์์ด ์คํ๋์ด์ผํ ์ฝ๋๋ฅผ ํฌํจ์ํฌ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
- finally ๋ธ๋ญ์ try-catch๋ฌธ์ ๋งจ ๋ง์ง๋ง์ ์์นํด์ผ ํ๋ค.
- try ๋ธ๋ญ์์ return๋ฌธ์ด ์คํ๋๋ ๊ฒฝ์ฐ์๋ finally๋ธ๋ญ์ ๋ฌธ์ฅ๋ค์ด ๋จผ์ ์คํ๋ ํ์, ํ์ฌ ์คํ ์ค์ธ ๋ฉ์๋๋ฅผ ์ข ๋ฃํ๋ค.