ํ๋ก๊ทธ๋จ ์ค๋ฅ
์ปดํ์ผ ์๋ฌ(compile-time error) : ์ปดํ์ผ ํ ๋ ๋ฐ์ํ๋ ์๋ฌ
๋ฐํ์ ์๋ฌ(runtime error) : ์คํ ํ ๋ ๋ฐ์ํ๋ ์๋ฌ
๋ ผ๋ฆฌ์ ์๋ฌ(logical error) : ์์ฑ ์๋์ ๋ค๋ฅด๊ฒ ๋์
์ปดํ์ผ ์๋ฌ๋ java ์ปดํ์ผ๋ฌ๊ฐ ์ปดํ์ผ ํ ๋ ๋ฐ์ํ๋ ์๋ฌ์ด๋ค.
System.out.println์์ System์ system์ด๋ผ๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด, ๊ฐ๋ฐ๋๊ตฌ์์ ์ด๋ฏธ ์๋ฌ๋ผ๊ณ ํ๊ธฐํ๋ค.
๊ทธ๋ฌํ ์๋ฌ๋ฅผ ์ปดํ์ผ ์๋ฌ๋ผ๊ณ ํ๋ค.
๋ฐํ์ ์๋ฌ๋ ์ฝ๋๊ฐ ๋ฌธ๋ฒ์๋ ๋ง์์ ์๋ฌ๊ฐ ๋ฐ์ํ์ง ์์ง๋ง, ์คํ์ ํ๋ฉด ๋ฐ์๋๋ ์๋ฌ์ด๋ค.
์ปดํ์ผ๋ฌ๋ ๊ธฐ๋ณธ์ ์ธ ์ค๋ฅ๋ง ์ฒดํฌ๋ฅผ ํ๊ณ , ๋ชจ๋ ๊ฒ์ ์ฒดํฌํ์ง๋ ์๋๋ค.
๊ทธ๋ฌํ ์คํํ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ๋ฐํ์ ์๋ฌ๋ผ๊ณ ํ๋ค.
๋ ผ๋ฆฌ์ ์๋ฌ๋ ์ปดํ์ผ ํ ๋๋ ๋ฌธ์ ์๊ณ , ์คํ ํ ๋๋ ๋ฌธ์ ์์ด ๋์ํ์ง๋ง,
๋ด๊ฐ ์ฝ๋๋ฅผ ์์ฑํ ์๋์ ๋ค๋ฅด๊ฒ ๋์ํ๋ ๊ฒฝ์ฐ์ ๋ํ๋ ์๋ฌ์ด๋ค.
์๋ฅผ ๋ค์ด, ๋ ์์ค๋ ์ด์์ ํผํ๋ ๋ก์ผ ๊ฒ์์ด ์์ ๋ ์ด์์ ๋ง์ผ๋ฉด ๋ก์ผ์ด ํญ๋ฐํด์ผ ํ์ง๋ง,
์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ฉด ์์ฑ ์๋์ ๋ค๋ฅด๊ฒ ๋์์ ํ๊ธฐ ๋๋ฌธ์ ๋ ผ๋ฆฌ์ ์๋ฌ๋ผ๊ณ ํ๋ค.
Java์ ๋ฐํ์ ์๋ฌ
์๋ฐ์์๋ ๋ฐํ์ ์๋ฌ๋ฅผ ๋๊ฐ์ง ์ข ๋ฅ๋ก ๋ถ๋ฅํ์๋ค.
์๋ฌ(error) : ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ํด์ ์์ต๋ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ
์์ธ(exception) : ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ํด์ ์์ต๋ ์ ์๋ ๋ค์ ๋ฏธ์ฝํ ์ค๋ฅ
์๋ฌ(error)๋ ์ด์ฉ ์ ์์ง๋ง, ์์ธ(exception)๋ ์ฒ๋ฆฌํด์ผ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด, ์์ธ์ฒ๋ฆฌ๋ ์ ํด์ผ ํ๋ ๊ฑธ๊น?
์์ธ์ฒ๋ฆฌ์ ์ ์์ ๋ชฉ์
์์ธ์ฒ๋ฆฌ(exception handling)์
์ ์ : ํ๋ก๊ทธ๋จ ์คํ ์ ๋ฐ์ํ ์ ์๋ ์์ธ์ ๋ฐ์์ ๋๋นํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ
๋ชฉ์ : ํ๋ก๊ทธ๋จ์ ๋น์ ์ ์ข ๋ฃ๋ฅผ ๋ง๊ณ , ์ ์์ ์ธ ์คํ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ
์์ธ ํด๋์ค์ ๊ณ์ธต ๊ตฌ์กฐ
Throwable์ ๋ชจ๋ ์ค๋ฅ์ ์กฐ์ ํด๋์ค์ด๋ค.
Exceptionํด๋์ค๋ ์์ธ ํด๋์ค(๋ฏธ์ฝํ ์ค๋ฅ)์ด๊ณ , Errorํด๋์ค๋ ์๋ฌ ํด๋์ค(์ฌ๊ฐํ ์ค๋ฅ)์ด๋ค.
Errorํด๋์ค์ OutOfMemoryError๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ์๋ฌ์ด๋ค.
Exception๊ณผ RuntimeException
Exceptionํด๋์ค ์์๋ ๋ ๊ฐ์ง ์์ธ๋ก ๋๋๋ค.
Exceptionํด๋์ค์ ์์ ํด๋์ค๋ค๊ณผ, RuntimeExceptionํด๋์ค์ ์์ ํด๋์ค๋ค์ด๋ค.
RuntimeExceptionํด๋์ค ๋ํ Exception์ ์์ ํด๋์ค์ด๋ค.
Exceptionํด๋์ค๋ค : ์ฌ์ฉ์์ ์ค์์ ๊ฐ์ ์ธ์ ์ธ ์์ธ์ ์ํด ๋ฐ์ํ๋ ์์ธ
RuntimeExceptionํด๋์ค๋ค : ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ก ๋ฐ์ํ๋ ์์ธ
'๐จ๏ธ Language > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java]์์ธ์ฒ๋ฆฌ (3) - ์์ธ ๋ฐ์, ์์ธ ์ ์ธ, finally๋ธ๋ญ (0) | 2022.11.13 |
---|---|
[Java]์์ธ์ฒ๋ฆฌ (2) - try-catch๋ฌธ, printStackTrace()์ getMessage() (0) | 2022.11.12 |
[Java]๊ฐ์ฒด์งํฅ (7) - ๋ด๋ถ ํด๋์ค, ์ต๋ช ํด๋์ค (0) | 2022.11.03 |
[Java]๊ฐ์ฒด์งํฅ (6) - ์ธํฐํ์ด์ค(interface) (0) | 2022.11.01 |
[Java]๊ฐ์ฒด์งํฅ (5) - ์ถ์ ํด๋์ค, ์ถ์ ๋ฉ์๋ (0) | 2022.10.30 |