ExceptionUtil.java
public class ExceptionUtil {
public static void safeProcess(int[] array, int index, int divisor) {
try {
// é…列ã‹ã‚‰è¦ç´ ã‚’å–å¾—
int value = array[index];
System.out.println("é¸ã°ã‚ŒãŸå€¤: " + value);
// 割り算を実行
int result = value / divisor;
System.out.println("è¨ˆç®—çµæžœ: " + result);
} catch (Exception e) {
// ã™ã¹ã¦ã®ä¾‹å¤–ã‚’ã¾ã¨ã‚ã¦æ•æ‰
System.out.println("例外ãŒç™ºç”Ÿã—ã¾ã—ãŸ: " + e.getMessage());
}
}
}
解説:Exception ã§ã¾ã¨ã‚㦠catch ã™ã‚‹
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€ArrayIndexOutOfBoundsException ã‚„ ArithmeticException ã®ã‚ˆã†ãª
複数種類ã®ä¾‹å¤–ã‚’ã€è¦ªã‚¯ãƒ©ã‚¹ã§ã‚ã‚‹ Exception ã§ã¾ã¨ã‚ã¦æ•æ‰ã™ã‚‹æ–¹æ³•ã‚’å¦ã³ã¾ã™ã€‚
Exception ã¯ä¾‹å¤–クラスã®è¦ª
Javaã®ä¾‹å¤–階層ã§ã¯ã€ã»ã¨ã‚“ã©ã®ä¾‹å¤–㯠Exception クラスを継承ã—ã¦ã„ã¾ã™ã€‚
Exception
├── RuntimeException
│ ├── ArithmeticException
│ └── ArrayIndexOutOfBoundsException
└── IOException ãªã©
ã“ã®ãŸã‚ã€catch (Exception e) ã¨æ›¸ã‘ã°ã€ã»ã¨ã‚“ã©ã®ä¾‹å¤–を一括ã§å‡¦ç†ã§ãã¾ã™ã€‚
出力例(テストコードã«ã‚ˆã‚‹çµæžœï¼‰
safeProcess(new int[]{10, 20, 30}, 1, 5);
// → é¸ã°ã‚ŒãŸå€¤: 20
// → è¨ˆç®—çµæžœ: 4
safeProcess(new int[]{10, 20, 30}, 3, 2);
// → 例外ãŒç™ºç”Ÿã—ã¾ã—ãŸ: Index 3 out of bounds for length 3
safeProcess(new int[]{10, 20, 30}, 0, 0);
// → é¸ã°ã‚ŒãŸå€¤: 10
// → 例外ãŒç™ºç”Ÿã—ã¾ã—ãŸ: / by zero
getMessage() ã§åŽŸå› ã‚’çŸ¥ã‚‹
例外オブジェクト㮠getMessage() を使ã†ã¨ã€ä½•ãŒèµ·ããŸã®ã‹ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å–å¾—ã§ãã¾ã™ã€‚
ã“れã¯ãƒã‚°å‡ºåŠ›ã‚„ãƒ¦ãƒ¼ã‚¶ãƒ¼ã¸ã®é€šçŸ¥ã«å½¹ç«‹ã¡ã¾ã™ã€‚
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
Exceptionã§catchã™ã‚Œã°ã€å€‹åˆ¥ã®ä¾‹å¤–ã‚’ã™ã¹ã¦ä¸€æ‹¬ã§å‡¦ç†ã§ãã‚‹- 一括catchã¯ä¾¿åˆ©ã ãŒã€å€‹åˆ¥ã®å¯¾å‡¦ãŒã§ããªã„ã¨ã„ã†ãƒ‡ãƒ¡ãƒªãƒƒãƒˆã‚‚ã‚ã‚‹
getMessage()を使ãˆã°ã€ä¾‹å¤–ã®å†…容を簡å˜ã«å–å¾—ã§ãã‚‹
103 ステップアップå•題 「例外修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œä¾‹å¤–修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// ã“ã®é•和感ã€ã“ã“ã§å‡¦ç†ã—ãªã„ã¨æ®‹ã‚‹ã‚ˆã€‚
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント