å•題
ã‚ãªãŸã¯ã€é…列ã®è¦ç´ ã‚’å–り出ã—ã¦å‰²ã‚Šç®—ã‚’ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’作æˆã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚
ã“ã®å‡¦ç†ã§ã¯æ¬¡ã®2ã¤ã®ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ï¼š
- é…列ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒç¯„囲外 →
ArrayIndexOutOfBoundsException - ゼãƒé™¤ç®— →
ArithmeticException
ã“ã®2ã¤ã®ä¾‹å¤–ã¯ã€ã©ã¡ã‚‰ã‚‚ RuntimeException → Exception を継承ã—ã¦ã„ã¾ã™ã€‚
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€Exception クラスã§ã¾ã¨ã‚ã¦ä¾‹å¤–ã‚’æ•æ‰ã—ã€ä¾‹å¤–ãŒç™ºç”Ÿã—ã¾ã—ãŸ: (例外メッセージ) ã¨ã„ã†å½¢å¼ã§å‡ºåŠ›ã—ã¦ãã ã•ã„。
è¦ä»¶
catch (Exception e)ã§2種類ã®ä¾‹å¤–ã‚’ã¾ã¨ã‚ã¦æ•ã¾ãˆã‚‹ã“ã¨- 発生ã—ãŸä¾‹å¤–ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出力ã™ã‚‹ã“ã¨ï¼ˆ
e.getMessage()を使ã†ï¼‰ - æ£å¸¸ãªå ´åˆã¯ã€è¦ç´ ã¨è¨ˆç®—çµæžœã‚’出力ã™ã‚‹ã“ã¨
出力形å¼
- æ£å¸¸æ™‚:
é¸ã°ã‚ŒãŸå€¤: 20 è¨ˆç®—çµæžœ: 4 - 例外発生時:
例外ãŒç™ºç”Ÿã—ã¾ã—ãŸ: / by zero
テストコード(Main.java)
public class Main {
public static void main(String[] args) {
int[] numbers = {10, 20, 30};
ExceptionUtil.safeProcess(numbers, 1, 5); // æ£å¸¸
ExceptionUtil.safeProcess(numbers, 3, 2); // é…列外アクセス
ExceptionUtil.safeProcess(numbers, 0, 0); // ゼãƒé™¤ç®—
}
}
ヒント
catch (Exception e)ã«ã™ã‚‹ã“ã¨ã§ã€ã™ã¹ã¦ã®ä¾‹å¤–を一括ã§å‡¦ç†ã§ãã‚‹e.getMessage()を使ãˆã°ã€ä¾‹å¤–ãŒæŒã£ã¦ã„るメッセージをå–å¾—ã§ãã‚‹- 実際ã®é–‹ç™ºç¾å ´ã§ã‚‚ã€ã€Œä¾‹å¤–ã®ç¨®é¡žã‚’æ°—ã«ã›ãšãƒã‚°ã ã‘æ®‹ã™ã€ã¨ã„ã†å‡¦ç†ã§ä½¿ã‚れるã“ã¨ãŒã‚ã‚‹
→ è§£ç”例
103 ステップアップå•題 「例外修羅é“ã€
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント