å•題
public class RethrowAndChainExample {
public static void main(String[] args) {
try {
performOperation();
} catch (CustomException e) {
System.out.println("メインメソッド: " + e.getMessage());
System.out.println("åŽŸå› : " + e.getCause().getMessage());
}
}
static void performOperation() throws CustomException {
try {
// 何らã‹ã®æ“作を試ã¿ã‚‹
} catch (Exception e) {
// カスタム例外ã¨ã—ã¦å†ã‚¹ãƒãƒ¼ã—ã€å…ƒã®ä¾‹å¤–ã‚’ãƒã‚§ãƒ¼ãƒ³ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’追åŠ
}
}
}
上記ã®ãƒ—ãƒã‚°ãƒ©ãƒ ã§ã€performOperation メソッド内ã®ã‚³ãƒ¡ãƒ³ãƒˆã«æ›¸ã‹ã‚Œã¦ã„るよã†ã«ã€catch ブãƒãƒƒã‚¯ã§ç™ºç”Ÿã—ãŸä¾‹å¤–ã‚’ CustomException ã¨ã—ã¦å†ã‚¹ãƒãƒ¼ã—ã€å…ƒã®ä¾‹å¤–ã‚’ãƒã‚§ãƒ¼ãƒ³ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’è¿½åŠ ã—ã¦ãã ã•ã„。
ヒント
例外ã®ãƒã‚§ãƒ¼ãƒ³ã¯ã€Throwable クラス㮠initCause メソッドを使用ã—ã¦è¡Œã„ã¾ã™ã€‚initCause メソッドã¯ã€æŒ‡å®šã•れãŸä¾‹å¤–ã‚’ç¾åœ¨ã®ä¾‹å¤–ã®åŽŸå› ã¨ã—ã¦è¨å®šã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚’使用ã—ã¦ã€æ–°ã—ã„例外を作æˆã—ã€å…ƒã®ä¾‹å¤–ã‚’ãã®åŽŸå› ã¨ã—ã¦ãƒã‚§ãƒ¼ãƒ³ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
コードã®è¿½åŠ ãƒã‚¤ãƒ³ãƒˆ
CustomExceptionを作æˆã—ã¦ã€Exceptionを継承ã—ã¾ã™ã€‚performOperationメソッド内ã§ã®ä¾‹å¤–発生時ã«ã€æ–°ã—ã„CustomExceptionをスãƒãƒ¼ã—ã¾ã™ã€‚initCauseメソッドを使用ã—ã¦ã€å…ƒã®ä¾‹å¤–ã‚’CustomExceptionã®åŽŸå› ã¨ã—ã¦è¨å®šã—ã¾ã™ã€‚
ã“れã«ã‚ˆã‚Šã€performOperation メソッドã‹ã‚‰å‘¼ã³å‡ºã•れ㟠main メソッドã§ã€æ–°ã—ã„ CustomException ã¨ãã®åŽŸå› ã®å…ƒã®ä¾‹å¤–ãŒå–å¾—ã§ãã¾ã™ã€‚
→解ç”例
「019 例外ã¨ä¾‹å¤–処ç†ã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント