๐ค ์ค์ค๋ก ์ฃฝ์์ ํํ๋ค๊ณ ?
์ธ๊ตญ ์ข๋น ์ํ๋ ๋งํ๋ฅผ ๋ณด๋ฉด ๊ฐ๋ ๊ทธ๋ฐ ๋์ฌ๋ค์ด ์๋ค. '๋ด๊ฐ ์๋ชป๋ ๊ฑฐ ๊ฐ์ผ๋ฉด ๋ค ์์ผ๋ก ๋๋ฅผ ์ฃฝ์ฌ์ค.' ์ด๋ ๊ฒ ๋ ์ค์ค๋ก๊ฐ ์ฃผ๋ณ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ๊ฒ ๊ฐ์ ๋, ์ค์ค๋ก ์ฃฝ์์ ํํ๊ธฐ๋ ํ๋ค.
ํ๋ก๊ทธ๋๋ฐ์์๋ ๋ญ๊ฐ ๋ฌธ์ ๊ฐ ๋ ๊ฒ ๊ฐ์ ์ฝ๋์ ์ง์ ์์ธ๋ฅผ ๋์ง๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์๋ํ๋ฉด ๋ง์ฝ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ ์ปดํจํฐ๊ฐ ๋ณ ๋ฌธ์ ์๋ค๊ณ ํ๋จํ๊ณ ๊ทธ๋ฅ ์คํ์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์์ธ๋ฅผ ๋์ง๋ค๋ ํํ์ ์ฌ์ฉํ๋๋ฐ, ๊ทธ ์ด์ ๋ ์ด๋ฐ ๊ฒฝ์ฐ throw๋ฌธ์ ์์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค.
import java.time.DateTimeException;
public class ExceptionPractice {
public static void main(String[] args) {
try {
int minute = Integer.parseInt(args[0]);
if (minute < 1 || minute >= 60) {
throw new DateTimeException("Invalid minute");
}
} catch (DateTimeException e) {
e.printStackTrace();
}
}
}
์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ค๊ฐ์ throw new DateTimeException ์ด ๋ณด์ด๋๋ฐ, throw๋ฅผ ํตํด DateTimeException ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๋์ง๊ฒ ๋ค๋ ์๋ฏธ๋ค. if๋ฌธ ์์ throw๋ฌธ์ด ์คํ๋๋ฉด try-catch๋ฌธ์์ ์์ธ๋ฅผ ์ก์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ์ฆ, DateTimeException ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉด catch๋ฌธ์์ e.printStackTrace ๋ฉ์๋๋ฅผ ์คํ์ํค๋ ๊ฒ์ด๋ค.
๐ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ํ ๊ฐ์ง ๋!
2022.09.21 - [Java] - [Java] ์์ธ๋ฅผ ๋ค๋ฃจ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ
[Java] ์์ธ๋ฅผ ๋ค๋ฃจ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ
2022.09.20 - [Java] - [Java] ์์ธ ์ฒ๋ฆฌ์ ์ด์ ์ ์ข ๋ฅ [Java] ์์ธ ์ฒ๋ฆฌ์ ์ด์ ์ ์ข ๋ฅ ๐ค์์ธ๋ ์ซ์๋ฐ ์์ธ ์ฒ๋ฆฌ๋ ์ข์์ Error์ ๊ฐ์ ์์ธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ ์ ์์ ์ผ๋ก ์๋ํ๊ธฐ ์ด๋ ต
codari.tistory.com
์ ๋ฒ ๊ธ์์ ํ ๊ฐ์ง ๋นผ๋จน์ ๊ฒ์ด ์๋ค. ์์ธ๋ฅผ ์ก๋ ๋ฐฉ๋ฒ์ try-catch๋ฌธ ์ธ์๋ ํ ๊ฐ์ง ๋ ์กด์ฌํ๋๋ฐ, ๋ฐ๋ก ๋ฉ์๋์ throws๋ฌธ์ ์์ฑํ๋ ๊ฒ์ด๋ค.
import java.time.DateTimeException;
public class ExceptionPractice {
public static void main(String[] args) {
try {
int minute = 70;
test(minute);
} catch (DateTimeException e) {
e.printStackTrace();
}
}
public static void test(int minute) throws DateTimeException {
if (minute < 1 || minute >= 60) {
throw new DateTimeException("Invalid minute");
}
}
}
๋ค๋ง, ๋ฉ์๋์ throws๋ฌธ์ ์์ฑํ๋ฉด ํด๋น ์ฝ๋์์ ์์ธ๋ฅผ ์ง์ ์ฒ๋ฆฌํ๋ ๊ฐ๋ ์ ์๋๊ณ , ๋ฉ์๋๋ฅผ ํธ์ถํ ๊ณณ์์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ฒ๋ ๋ง๋ ๋ค. ์ ์ฝ๋์์ ๋ณด๋ฉด test์์ ๋ฐ์ํ DateTimeException์ main๋ฌธ์์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค.
์ด๋ฒ์๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ง์ ํ๋ ์ด์ ์ ๋ฐฉ๋ฒ ๊ทธ๋ฆฌ๊ณ ์์ธ ์ฒ๋ฆฌํ๋ ์ถ๊ฐ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ดค๋ค. ๋ค์ ํฌ์คํ ์๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋จ์ ์์ ์ ๊ผญ ์คํํด์ผ ํ๋ ๊ฒฝ์ฐ ์์ฑํ๋ ์ฝ๋์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์๋ฐ์ ํ๋ผ๋ฏธํฐ (0) | 2022.09.27 |
---|---|
[Java] Finally์ (1) | 2022.09.24 |
[Java] ์์ธ๋ฅผ ๋ค๋ฃจ๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ (2) | 2022.09.21 |
[Java] ์์ธ ์ฒ๋ฆฌ์ ์ด์ ์ ์ข ๋ฅ (2) | 2022.09.20 |
[Java] ์๋ฐ์ ๋ฐ์ดํฐ ํ์ (0) | 2022.09.04 |