ExceptionUtil.java
public class ExceptionUtil {
public static void processData(String[] inputs) {
for (String input : inputs) {
try {
// 入力を整数ã«å¤‰æ›
int value = Integer.parseInt(input);
// 100ã‚’valueã§å‰²ã£ã¦çµæžœã‚’出力
int result = 100 / value;
System.out.println("入力 \"" + input + "\" ã®çµæžœ → " + result);
} catch (NumberFormatException e) {
// 数値ã«å¤‰æ›ã§ããªã‹ã£ãŸå ´åˆã®å‡¦ç†
System.out.println("入力 \"" + input + "\" ã¯æ•°å€¤ã«å¤‰æ›ã§ãã¾ã›ã‚“ã§ã—ãŸ");
} catch (ArithmeticException e) {
// ゼãƒã«ã‚ˆã‚‹é™¤ç®—ãŒç™ºç”Ÿã—ãŸå ´åˆã®å‡¦ç†
System.out.println("入力 \"" + input + "\" ã¯ã‚¼ãƒã«ã‚ˆã‚‹é™¤ç®—エラーã§ã™");
}
}
}
}
解説:複数処ç†ã®å€‹åˆ¥ try-catch ã«ã‚ˆã‚‹å®‰å…¨å®Ÿè¡Œ
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€è¤‡æ•°ã®å…¥åŠ›ã«å¯¾ã—ã¦ã€1ä»¶ãšã¤ä¾‹å¤–処ç†ã‚’行ã„ãªãŒã‚‰å®‰å…¨ã«å‡¦ç†ã‚’継続ã™ã‚‹ãƒ†ã‚¯ãƒ‹ãƒƒã‚¯ã‚’å¦ã³ã¾ã™ã€‚
ãƒã‚¤ãƒ³ãƒˆ1:ループã”ã¨ã« try-catch を分ã‘ã‚‹
for (String input : inputs) {
try {
// 個別ã®ä¾‹å¤–処ç†
} catch (...) {
...
}
}
ã“ã®ã‚ˆã†ã«ã™ã‚‹ã“ã¨ã§ã€1ä»¶ã§ä¾‹å¤–ãŒç™ºç”Ÿã—ã¦ã‚‚ã€ä»–ã®ãƒ‡ãƒ¼ã‚¿ã«å½±éŸ¿ã‚’与ãˆãšå‡¦ç†ãŒç¶šè¡Œã§ãã¾ã™ã€‚
ãƒã‚¤ãƒ³ãƒˆ2:複数 catch ã«ã‚ˆã‚‹ã‚¨ãƒ©ãƒ¼åˆ†é¡ž
NumberFormatException→ æ–‡å—åˆ—ãŒæ•´æ•°ã«å¤‰æ›ã§ããªã„ArithmeticException→ ゼãƒé™¤ç®—ãªã©ã®ç®—術エラー
é©åˆ‡ãªä¾‹å¤–ã”ã¨ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’分ã‘ã‚‹ã“ã¨ã§ã€ãƒã‚°ã‚„エラー表示ãŒã‚ˆã‚Šæ˜Žç¢ºã«ãªã‚Šã¾ã™ã€‚
出力例(テストコードã«ã‚ˆã‚‹çµæžœï¼‰
入力 "20" ã®çµæžœ → 5
入力 "0" ã¯ã‚¼ãƒã«ã‚ˆã‚‹é™¤ç®—エラーã§ã™
入力 "abc" ã¯æ•°å€¤ã«å¤‰æ›ã§ãã¾ã›ã‚“ã§ã—ãŸ
入力 "10" ã®çµæžœ → 10
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
- 複数ã®ä¾‹å¤–ãŒèµ·ãã†ã‚‹å‡¦ç†ã‚’ã€1ä»¶ãšã¤å®‰å…¨ã«å®Ÿè¡Œã™ã‚‹æ§‹é€ を作る
- 処ç†ã®é€”ä¸ã§ã‚¨ãƒ©ãƒ¼ãŒã‚ã£ã¦ã‚‚ã€ä»–ã®å‡¦ç†ã‚’ç¶šã‘ã‚‹ã“ã¨ãŒé‡è¦
- catch を分ã‘ã¦ã€ã‚¨ãƒ©ãƒ¼ã®ç¨®é¡žã«å¿œã˜ãŸãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚„ãƒã‚°ã‚’出力ã™ã‚‹
103 ステップアップå•題 「例外修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œä¾‹å¤–修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// ã“ã®ä¸€æ©ã‚’è¸ã¿å¤–ã™ã¨ã€ã—ã°ã‚‰ã地ç„ã€‚ä»Šã€æ•´åœ°ã—ã¨ã‘。
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント