ExceptionUtil.java
public class ExceptionUtil {
public static void process(int[] array, int index, int divisor) {
try {
// é…列ã‹ã‚‰è¦ç´ ã‚’å–り出ã™
int value = array[index];
System.out.println("é¸ã°ã‚ŒãŸå€¤: " + value);
// 割り算を実行ã™ã‚‹
int result = value / divisor;
System.out.println("è¨ˆç®—çµæžœ: " + result);
} catch (ArrayIndexOutOfBoundsException e) {
// é…列ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒç¯„囲外ã®å ´åˆ
System.out.println("エラー: インデックスãŒç¯„囲外ã§ã™");
} catch (ArithmeticException e) {
// ゼãƒé™¤ç®—ãŒç™ºç”Ÿã—ãŸå ´åˆ
System.out.println("エラー: ゼãƒã«ã‚ˆã‚‹é™¤ç®—ã§ã™");
}
}
}
解説:複数ã®ä¾‹å¤–ã«å€‹åˆ¥å¯¾å¿œã™ã‚‹
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€1ã¤ã®ãƒ¡ã‚½ãƒƒãƒ‰å†…ã§è¤‡æ•°ã®ä¾‹å¤–ãŒç™ºç”Ÿã—ã†ã‚‹å‡¦ç†ã«å¯¾ã—ã¦ã€ãれãžã‚Œåˆ¥ã€…ã® catch ブãƒãƒƒã‚¯ã§å¯¾å¿œã™ã‚‹æ–¹æ³•ã‚’å¦ã³ã¾ã™ã€‚
ãªãœ catch を分ã‘ã‚‹å¿…è¦ãŒã‚ã‚‹ã®ã‹ï¼Ÿ
ç•°ãªã‚‹ç¨®é¡žã®ã‚¨ãƒ©ãƒ¼ã«å¯¾ã—ã¦ã€ãれãžã‚Œç•°ãªã‚‹å¯¾å‡¦ã‚’ã—ãŸã„å ´åˆã€catch ã‚’å€‹åˆ¥ã«æ›¸ãã“ã¨ã§ã€ã‚¨ãƒ©ãƒ¼å†…容ã«å¿œã˜ãŸå‡¦ç†åˆ†å²ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã€‚
try {
// 複数ã®å±é™ºãªå‡¦ç†
} catch (ExceptionTypeA e) {
// エラーAã«å¯¾ã™ã‚‹å‡¦ç†
} catch (ExceptionTypeB e) {
// エラーBã«å¯¾ã™ã‚‹å‡¦ç†
}
出力例(テストコードã«ã‚ˆã‚‹çµæžœï¼‰
ExceptionUtil.process(new int[]{10, 20, 30}, 2, 10);
// → é¸ã°ã‚ŒãŸå€¤: 30
// → è¨ˆç®—çµæžœ: 3
ExceptionUtil.process(new int[]{10, 20, 30}, 5, 2);
// → エラー: インデックスãŒç¯„囲外ã§ã™
ExceptionUtil.process(new int[]{10, 20, 30}, 1, 0);
// → é¸ã°ã‚ŒãŸå€¤: 20
// → エラー: ゼãƒã«ã‚ˆã‚‹é™¤ç®—ã§ã™
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
tryブãƒãƒƒã‚¯ã®ä¸ã§è¤‡æ•°ã®ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚る処ç†ã‚’ã¾ã¨ã‚ã¦è¨˜è¿°ã§ãã‚‹catchを分ã‘ã‚‹ã“ã¨ã§ã€ã‚¨ãƒ©ãƒ¼ã”ã¨ã«ç•°ãªã‚‹å¯¾å¿œãŒã§ãã‚‹- 安全ã«å‡¦ç†ã‚’継続ã—ãªãŒã‚‰ã€é©åˆ‡ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出力ã§ãã‚‹æ§‹é€ ã‚’ä½œã‚‹ã®ãŒã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã®ç›®çš„
103 ステップアップå•題 「例外修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œä¾‹å¤–修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// å‹•ã„ãŸï¼ç†è§£ã§ããŸã€ã¨ã¯é™ã‚‰ãªã„。ã“ã£ã¡ã§æ•´ãˆã‚ˆã†ã€‚
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント