ํ๋ก๊ทธ๋จ ์ค๋ฅ
- ์ปดํ์ผ ์๋ฌ (Compile time error)
- ๋ฐํ์ ์๋ฌ (Run-time error)
Java์ ๋ฐํ์ ์๋ฌ: Error ์ Exception
์์ธ (Exception)
: ํ๋ก๊ทธ๋จ์ ์คํ ์ ๋ฐ์ํ ์ ์๋ ๋น์ ์์ ์ธ ์ํ๋ฅผ ์๋ ค์ฃผ๋ ์ ํธ. ๊ฐ์ฒด์
์์ธ์ฒ๋ฆฌ (Exception handling)
: ํ๋ก๊ทธ๋จ์ ์คํ ์ ๋ฐ์ํ ์ ์๋ ์์ธ์ ๋ฐ์์ ๋๋นํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ
์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ1 <try-catch๋ฌธ>
try {
//์์ธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ๋ฌธ์ฅ
}
catch(Exception e1) {
//Exception1์ด ๋ฐ์ํ์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฌธ์ฅ
}
catch(Exception e2) {
//Exception2๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฌธ์ฅ
}
...
finally {
//์์ธ ๋ฐ์์ฌ๋ถ์ ๊ด๊ณ์์ด ํญ์ ์ํ๋์ด์ผ ํ๋ ๋ฌธ์ฅ
}
* if๋ฌธ๊ณผ ๋ฌ๋ฆฌ try๋ธ๋ญ์ด๋ catch๋ธ๋ญ ๋ด์ ํฌํจ๋ ๋ฌธ์ฅ์ด ํ๋๋ผ๊ณ ํด์ ๊ดํธ{}๋ฅผ ์๋ตํ ์ ์๋ค.
try-catch๋ฌธ ์ํ ์์
โถ try๋ธ๋ญ ๋ด์์ ์์ธ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ
โ try๋ธ๋ญ์์ ์์ธ๊ฐ ๋ฐ์ํ ์์น์ ๋ฐ์ ์๋ ๋ฌธ์ฅ๋ค์ ๋ณด์ง ์๊ณ ,
โก ๋ฐ์ํ ์์ธ์ ์ผ์นํ๋ catch๋ธ๋ญ์ด ์๋์ง ํ์ธ
โข ์ผ์นํ๋ catch๋ธ๋ญ์ ์ฐพ์ผ๋ฉด: catch๋ธ๋ญ ๋ด์ ๋ฌธ์ฅ๋ค์ ์ํ -> ์ ์ฒด try~catch๋ฌธ ๋น ์ ธ๋๊ฐ
์ผ์นํ๋ catch๋ธ๋ญ์ ์ฐพ์ง ๋ชปํ๋ฉด: ์์ธ ์ฒ๋ฆฌX
โถ try๋ธ๋ญ ๋ด์์ ์์ธ๊ฐ ๋ฐ์ํ์ง ์์ ๊ฒฝ์ฐ
โ catch๋ธ๋ญ์ ๊ฑฐ์น์ง ์๊ณ try๋ธ๋ญ์ ๋๊น์ง ์ํ ํ -> try~catch๋ฌธ ๋น ์ ธ๋๊ฐ
* finally ๋ธ๋ก
: ์์ธ์ ๋ฐ์๊ณผ ๊ด๊ณ์์ด ์คํ๋์ด์ผ ํ๋ ์ฝ๋๋ฅผ ํฌํจ
๊ตฌ์กฐ์ ์ผ๋ก ๋ ์ ๋ช ํ๊ฒ ๋ณด์ธ๋ค๋ ์ฅ์ ์ด ์์ผ๋ ํ์๋ ์๋
์์ธ ๋ฐ์์: try ~ catch ~ fianlly
์์ธ ๋ฐ์X: try ~ fianlly
์์ธ ํด๋์ค์ ๊ณ์ธต๊ตฌ์กฐ

- Error
- Runtime Exception: ์ปดํ์ผ ์์ ์ฒดํฌ๋์ง ์์ (unchecked exception) > ์์ธ์ฒ๋ฆฌ ์ ํ
- Exception: ์์ธ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ์ปดํ์ผ๋์ง ์์ (checked exception) > ์์ธ์ฒ๋ฆฌ ํ์
Exception ํด๋์ค
- ์์ฑ์
1. Exception(String s)
2. Exception()
- ๋ฉ์๋
1. String getMessage(): Exception ์ค๋ธ์ ํธ์ String ๋๋ null์ ๋ฆฌํด
2. void printStackTrace(): ์์ธ์ ๋ฐ์ ๊ทผ์์ง๋ฅผ ์ฐพ์ ๋จ๊ณ๋ณ๋ก ์์ธ๋ฅผ ์ถ๋ ฅ
์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ2 <throws>
: ๋ฉ์๋๋ฅผ ํธ์ถํ ์ชฝ์ผ๋ก ์์ธ๋ฅผ ๋์ ธ ํธ์ถํ ์ชฝ์์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋๋ก ํ๋ ๋ฐฉ์

try๋ธ๋ญ ์์์ doIt.doNormalCase() ๋ฉ์๋๋ฅผ ๋ง๋จ
> doNormalCase() ๋ฉ์๋ ์ํ
- throws DivideByZeroException
> ๋ฉ์๋ ์ํํ๋ค๊ฐ DivideByZeroException ์์ธ ๋ฐ์ํ๋ฉด ๋ฉ์ธ ๋ฉ์๋์ try๋ก ์์ธ๋ฅผ ๋์ง
> catch๋ธ๋ญ์ด ์์ธ ์ฒ๋ฆฌ.
> doNormalCase() ๋ฉ์๋ ์ข ๋ฃ (throw ๋ฐ์ ๋ฌธ์ฅ์ ์ํX)
* doNormalCase() ๋ฉ์๋์์ ์์ธ๊ฐ ๋ฐ์ํ์ง ์๋๋ค๋ฉด ๋ฉ์๋ ๋๊น์ง ์ํ
์ฌ์ฉ์ ์ ์ ์์ธ ๋ง๋ค๊ธฐ
: ๊ธฐ์กด์ ์์ธ ํด๋์ค๋ฅผ ์์๋ฐ์์ ์๋ก์ด ์์ธ ํด๋์ค๋ฅผ ์ ์
class MyException extends Exception {
MyException(String msg) {
super(msg); //์กฐ์์ธ Exceptionํด๋์ค์ ์์ฑ์๋ฅผ ํธ์ถ
}
}
* try ๋ธ๋ก์ ๋ค์์ ์๋ก ๋ค๋ฅธ ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ ์์ง๋ง ๊ฐ catch ๋ธ๋ก์ ํ ์ข ๋ฅ์ ์์ธ๋ง์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก catch ๋ธ๋ก์ ์์๊ฐ ์ค์ํ๋ค. > ๋ ์์ธํ catch ๋ธ๋ก์ด ๋จผ์ ๋์์ผ ํ๋ค.
'๊ณต๋ถ ๊ธฐ๋ก > JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
week3_4 ๊ณผ์ (0) | 2023.09.30 |
---|---|
230927 ์๊ฐํ week4 (0) | 2023.09.29 |
230925 JAVA (0) | 2023.09.25 |
์๊ฐํ week3 ํด๋์ค์ ๊ฐ์ฒด (0) | 2023.09.24 |
230923 JAVA (0) | 2023.09.24 |