์ฌ์น์ฐ์ฐ์ ํด๋์ค๋ก ๋ถ๋ฆฌํ๋ฉด ๋ฐ์ํ troubleshooting
๐ฅ ๋ฌธ์ 5. catch์์ return ๊ฐ์ด ์์ด์ ์ปดํ์ผ ์ค๋ฅ ๋ฐ์
๐คฏ ๋์ ์ํฉ
์ฌ์น ์ฐ์ฐ ํด๋์ค๋ฅผ ๋นผ๊ณ ๋๋ cactch์์ return๊ฐ์ด ์์ด์ก๋ค.
์ ๋ฆฌํ๋ฉด์ ๋ณต์ตํด๋ณด๋.. ๋ฌธ์ 4์ ๊ฑฐ์ ๋๊ฐ์ ์ํฉ์ธ๋ฏ
๐ฅธ ๋ฌธ์ ์ํฉ
โ๏ธ try-catch ์์์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด, catch ๋ธ๋ก์์ ์์ธ ๋ฉ์ธ์ง๋ฅผ ์ถ๋ ฅํ๊ณ ๋๋จ
โ๏ธ ํ์ง๋ง return ๊ฐ์ด ์์ด์ ์ปดํ์ผ ์ค๋ฅ ๋ฐ์
๐ฅ ๋ฌธ์ ์ฝ๋
int div(int a, int b) {
try {
int result = a / b;
}
catch (Exception e) {
System.out.println("ใโป ๋๋์
์ฐ์ฐ์์ ๋ถ๋ชจ(๋๋ฒ์งธ ๊ฐ)์ 0์ด ์
๋ ฅ๋ ์ ์์ต๋๋ค.\n");
} return result;
}
๐ช ํด๊ฒฐ ๋ฐฉ๋ฒ
์์ธ ๋ฐ์ ์ throw๋ก ๋์ง๊ณ , ํธ์ถํ๋ ๊ณณ์์ ์์ธ ์ฒ๋ฆฌ
๐ง ํด๊ฒฐ ์ฝ๋
int div(int a, int b) {
if (b == 0) {
throw new ArithmeticException("๋๋์
์ค๋ฅ"); // โ๏ธ 0์ผ๋ก ๋๋ ๋ ์์ธ ๋ฐ์
}
int result = a / b;
return result;
}
โ๏ธ b==0์ด๋ฉด throw๋ก ์์ธ ๋ฐ์ → ํธ์ถํ๋ ๊ณณ์์ try-catch๋ก ์ฒ๋ฆฌ
๐ฅ ๋ฌธ์ 6. ์ฌ์น์ฐ์ฐ ํด๋์ค๋ก ๋ถ๋ฆฌํ์ง๋ง ์ฝ๋ ๊ธธ์ด๊ฐ ์ค์ด๋ค์ง ์๋ ๋ฌธ์
๐คฏ ๋์ ์ํฉ
ํด๋์ค๋ก ๋บ์ผ๋ฉด ์ฝ๋๊ฐ ์ค์ด๋ค์ด์ผํ๋๋ฐ ์ฌ์ ํ ๊ธธ์ด์ ์ด์ํ๋ค.. ํด๊ฒฐ๋ฐฉ๋ฒ์ ๋ชจ๋ฅด๊ฒ ์ด์ ํํฐ๋๊ป ์ฌ์ญค๋ณด๋ ๋๋ฌด๋ ๊ฐ๋จํ ๊ฒ์ด์๋ค. switch๋ฌธ๊น์ง ํต์งธ๋ก ๋นผ๋ฉด ๋๋ ๊ฒ!!
๐ฅธ ๋ฌธ์ ์ํฉ
โ๏ธ Calculator ํด๋์ค๋ฅผ ๋ง๋ค์์ง๋ง, ์ฌ์ ํ switch๋ฌธ์ด ๊ทธ๋๋ก ์กด์ฌํ์ฌ ์ฝ๋๊ฐ ๊ธธ์ด์ง
๐ฅ ๋ฌธ์ ์ฝ๋
try {
// switch๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ ์คํํ๊ธฐ
switch (op) {
case '+':
result = calculator.sum(num1, num2);
break;
case '-':
result = calculator.sub(num1, num2);
break;
case '*':
result = calculator.mul(num1, num2);
break;
case '/':
result = calculator.div(num1, num2);
break;
}
๐ช ํด๊ฒฐ ๋ฐฉ๋ฒ
Calculator ๋ด๋ถ์์ ์ swich๋ฌธ๊น์ง ์ฒ๋ฆฌ
๐ง ํด๊ฒฐ ์ฝ๋
โ๏ธ ๋ฉ์ธ ํด๋์ค์์๋ calculator() ๋ฉ์๋๋ง ํธ์ถํ๋๋ก ๋ณ๊ฒฝํ๊ณ
result = calculator.calculator(num1, num2, op);
โ๏ธ Calculator ๋ด๋ถ์์ switch ์ฐ์ฐ์ ์งํ
int calculator(int a, int b, char op) {
int result = 0;
switch (op) {
case '+':
result = sum(a, b);
break;
case '-':
result = sub(a, b);
break;
case '*':
result = mul(a, b);
break;
case '/':
result = div(a, b);
break;
}
return result;
}
โ๏ธ ๋ฉ์ธ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง!!
โ๏ธ ๋ฐฐ์ด์ ์์ฝ
- ์์ธ ๋ฐ์ ์ ๋ฐํํ ๊ฐ์ด ์์๋๋ throw๋ก ์์ธ๋ฅผ ๋์ง๊ณ ํธ์ถํ๋ ๊ณณ์์ try-catch ์ฒ๋ฆฌ
- ์ฐ์ฐ ๋ก์ง์ ํด๋์ค ๋ด๋ถ๋ก ๋ฃ์ผ๋ฉด ๋ฉ์ธ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง
- switch์์ break;๋ฅผ ๋น ๋จ๋ฆฌ๋ฉด ๋ชจ๋ ์ฐ์ฐ์ด ์คํ๋๋ฏ๋ก ์ฃผ์!!