์์ธ ์ฒ๋ฆฌํ๊ธฐ
๋ค์์ ์์ธ์ฒ๋ฆฌ๋ฅผ ์ํ try, catch๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ด๋ค.
try {
...
} catch(์์ธ1) {
...
} catch(์์ธ2) {
...
}
try ๋ฌธ์์ ์ํํ ๋ฌธ์ฅ๋ค์์ ์์ธ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๋ฉด catch๋ฌธ์ ์ํ ๋ฌธ์ฅ๋ค์ ์ํ๋์ง ์๋๋ค.
ํ์ง๋ง try ๋ฌธ์์ ๋ฌธ์ฅ์ ์ํํ๋ ๋์ค์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ์์ธ์ ํด๋น๋๋ catch๋ฌธ์ด ์ํ๋๋ค.
์ซ์๋ฅผ 0์ผ๋ก ๋๋์์ ๋ ๋ฐ์ํ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์๋ค.
int c;
try {
c = 4 / 0;
} catch(ArithmeticException e) {
c = -1; // ์์ธ๊ฐ ๋ฐ์ํ์ฌ ์ด ๋ฌธ์ฅ์ด ์ํ๋๋ค.
}
rithmeticException์ด ๋ฐ์ํ๋ฉด c์ -1์ ๋์ ํ๋๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํ ๊ฒ์ด๋ค.
ArithmeticException e์์ e๋ ArithmeticException ํด๋์ค์ ๊ฐ์ฒด, ์ฆ ์ค๋ฅ ๊ฐ์ฒด์ ํด๋นํ๋ค.
์ด ์ค๋ฅ ๊ฐ์ฒด๋ฅผ ํตํด ํด๋น ์์ธ ํด๋์ค์ ๋ณ์๋ ๋ฉ์๋๋ฅผ ํธ์ถํ ์๋ ์๋ค.
finally
public static void main(String[] args) {
Sample sample = new Sample();
int c;
try {
c = 4 / 0;
} catch (ArithmeticException e) {
c = -1;
} finally {
sample.shouldBeRun(); // ์์ธ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ์ํ๋๋ค.
}
}
finally ๊ตฌ๋ฌธ์ try ๋ฌธ์ฅ ์ํ ์ค ์์ธ๋ฐ์ ์ฌ๋ถ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ์คํ๋๋ค.
๋ฐ๋ผ์ ์ ์ฝ๋๋ฅผ ์คํํ๋ฉด sample.shouldBeRun() ๋ฉ์๋๊ฐ ์ํ๋์ด "ok, thanks" ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋ ๊ฒ์ด๋ค.
RuntimeExeption๊ณผ Exception
RuntimeException์ ์คํ์ ๋ฐ์ํ๋ ์์ธ์ด๊ณ Exception์ ์ปดํ์ผ์ ๋ฐ์ํ๋ ์์ธ์ด๋ค.
์ฆ, Exception์ ํ๋ก๊ทธ๋จ ์์ฑ์ ์ด๋ฏธ ์์ธก๊ฐ๋ฅํ ์์ธ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๊ณ
RuntimeException์ ๋ฐ์ ํ ์๋ ๋ฐ์ ์ ํ ์๋ ์๋ ๊ฒฝ์ฐ์ ์์ฑํ๋ค.
๊ทธ๋์ Exception์ Checked Exception, RuntimeException์ Unchecked Exception ์ด๋ผ๊ณ ๋ ํ๋ค.
์์ธ | ์ฌ์ฉํด์ผ ํ ์ํฉ |
IllegalArgumentException | ๋งค๊ฐ๋ณ์๊ฐ ์๋ํ์ง ์์ ์ํฉ์ ์ ๋ฐ์ํฌ ๋ |
IllegalStateException | ๋ฉ์๋๋ฅผ ํธ์ถํ๊ธฐ ์ํ ์ํ๊ฐ ์๋ ๋ |
NullPointerException | ๋งค๊ฐ ๋ณ์ ๊ฐ์ด null ์ผ ๋ |
IndexOutOfBoundsException | ์ธ๋ฑ์ค ๋งค๊ฐ ๋ณ์ ๊ฐ์ด ๋ฒ์๋ฅผ ๋ฒ์ด๋ ๋ |
ArithmeticException | ์ฐ์ ์ ์ธ ์ฐ์ฐ์ ์ค๋ฅ๊ฐ ์์ ๋ |
'Develop > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ์์ฑ์(Constructor) / final ํค์๋ (0) | 2023.02.07 |
---|---|
JAVA / ๋ฐฐ์ด(Array) ์ ๋ฆฌ์คํธ(List) ์ ์ฐจ์ด / ์ ๋ค๋ฆญ์ค(Generics) (0) | 2023.01.20 |
(0) . JAVA ํ์ต ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ / JAVA ์ธ์ด์ ํน์ง (0) | 2023.01.07 |