MyAppException.java
// 独自ã®ä¾‹å¤–クラスを定義
public class MyAppException extends Exception {
// コンストラクタã§ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’å—ã‘å–りã€è¦ªã‚¯ãƒ©ã‚¹ã«æ¸¡ã™
public MyAppException(String message) {
super(message);
}
}
ExceptionUtil.java
public class ExceptionUtil {
public static void checkCode(int code) throws MyAppException {
if (code == 999) {
// æ¡ä»¶ã«åˆè‡´ã—ãŸå ´åˆã«ç‹¬è‡ªä¾‹å¤–をスãƒãƒ¼
throw new MyAppException("コード999ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“");
}
// æ£å¸¸ãªå ´åˆã¯ã‚³ãƒ¼ãƒ‰ã‚’出力
System.out.println("コード: " + code);
}
}
Main.javaï¼ˆå†æŽ²ï¼‰
public class Main {
public static void main(String[] args) {
try {
ExceptionUtil.checkCode(100); // æ£å¸¸
ExceptionUtil.checkCode(999); // 独自例外をスãƒãƒ¼
} catch (MyAppException e) {
System.out.println("独自例外発生: " + e.getMessage());
}
}
}

解説:独自例外ã®å®šç¾©ã¨æ´»ç”¨
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€æ¥å‹™å›ºæœ‰ã®çжæ³ã‚’表ç¾ã™ã‚‹ãŸã‚ã®ä¾‹å¤–クラスを自分ã§ä½œã‚‹æ–¹æ³•ã‚’å¦ã³ã¾ã™ã€‚
独自例外を作るç†ç”±
標準㮠IllegalArgumentException ã‚„ NullPointerException ã§ã¯è¡¨ç¾ã—ãれãªã„よã†ãª
アプリケーション特有ã®ã‚¨ãƒ©ãƒ¼çŠ¶æ…‹ã«åå‰ã¨æ„味を与ãˆã‚‹ãŸã‚ã«ã€ç‹¬è‡ªä¾‹å¤–を定義ã—ã¾ã™ã€‚
public class MyAppException extends Exception {
public MyAppException(String message) {
super(message);
}
}
出力例
ExceptionUtil.checkCode(100);
// → コード: 100
ExceptionUtil.checkCode(999);
// → 独自例外発生: コード999ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“
補足:throws ã¨ã®ä½µç”¨
MyAppException ã¯ãƒã‚§ãƒƒã‚¯ä¾‹å¤–(Exception ã®ã‚µãƒ–クラス)ãªã®ã§ã€
メソッドシグãƒãƒãƒ£ã« throws MyAppException ã‚’ã¤ã‘ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
Exceptionを継承ã™ã‚Œã°ã€è‡ªåˆ†ã ã‘ã®ä¾‹å¤–クラスを定義ã§ãã‚‹- æ¥å‹™ãƒ«ãƒ¼ãƒ«ã«åˆã£ãŸä¾‹å¤–を作るã“ã¨ã§ã€ã‚³ãƒ¼ãƒ‰ã®æ„å›³ã‚„ã‚¨ãƒ©ãƒ¼ã®æ„å‘³ãŒæ˜Žç¢ºã«ãªã‚‹
- ãƒã‚§ãƒƒã‚¯ä¾‹å¤–ã§ã‚れã°ã€
throwsを忘れãšã«æ›¸ãå¿…è¦ãŒã‚ã‚‹
103 ステップアップå•題 「例外修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œä¾‹å¤–修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// 「ãˆã€ãªã‚“ã§ï¼Ÿã€ã£ã¦ãªã£ãŸã‚„ã‚?ãれã€ã“ã“。
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント