static void processInput() {
// ユーザーã‹ã‚‰ã®å…¥åŠ›ã‚’å‡¦ç†ã™ã‚‹ã‚³ãƒ¼ãƒ‰ï¼ˆæ•´æ•°ä»¥å¤–ã®å…¥åŠ›ãŒã‚ã‚‹å¯èƒ½æ€§ãŒã‚る)
try {
// ä»®ã«æ•´æ•°ä»¥å¤–ã®å…¥åŠ›ãŒã‚ã‚‹ã¨ã™ã‚‹å‡¦ç†ï¼ˆä¾‹: æ–‡å—列を整数ã«å¤‰æ›ã™ã‚‹ï¼‰
String userInput = "abc"; // ä»®ã®å…¥åŠ›
int convertedValue = Integer.parseInt(userInput); // æ•´æ•°ã«å¤‰æ›
// ã“ã®è¡Œã¾ã§åˆ°é”ã™ã‚‹ã¨ã€æ£å¸¸ã«å‡¦ç†ãŒå®Œäº†ã—ãŸã¨ä»®å®š
} catch (NumberFormatException e) {
// 整数以外ã®å…¥åŠ›ãŒæ¤œå‡ºã•れãŸå ´åˆã€æ–°ã—ã„NumberFormatExceptionをスãƒãƒ¼
throw new NumberFormatException("整数以外ã®å…¥åŠ›ãŒæ¤œå‡ºã•れã¾ã—ãŸ");
}
}
ã“ã®ä¾‹ã§ã¯ã€String åž‹ã®å¤‰æ•° userInput ã‚’æ•´æ•°ã«å¤‰æ›ã—よã†ã¨ã—ã¦ã„ã¾ã™ã€‚ã‚‚ã— userInput ãŒæ•´æ•°ä»¥å¤–ã®æ–‡å—列をå«ã‚“ã§ã„ã‚‹å ´åˆã€Integer.parseInt メソッド㯠NumberFormatException をスãƒãƒ¼ã—ã¾ã™ã€‚ã“ã®ä¾‹å¤–ãŒæ•æ‰ã•ã‚Œã€æ–°ã—ã„ NumberFormatException ãŒç”Ÿæˆã•れã¦ã‚¹ãƒãƒ¼ã•れã¾ã™ã€‚
例外ã®ä¼æ’ã¨ã‚¹ãƒãƒ¼ã‚’組ã¿åˆã‚ã›ã¦ä½¿ã†
「例外ã®ä¼æ’ã€ã¨ã€Œä¾‹å¤–ã®ã‚¹ãƒãƒ¼ã€ã‚’組ã¿åˆã‚ã›ã‚‹ã“ã¨ã§ã€ã‚ˆã‚ŠæŸ”軟ãªã‚¨ãƒ©ãƒ¼å‡¦ç†ãŒå¯èƒ½ã¨ãªã‚Šã¾ã™ã€‚以下ã«ã€ã“ã‚Œã‚‰ã®æ¦‚念を組ã¿åˆã‚ã›ãŸéš›ã®è§£èª¬ã‚’æä¾›ã—ã¾ã™ã€‚
例外ã®ä¼æ’ã¨ã‚¹ãƒãƒ¼ã®çµ„ã¿åˆã‚ã›
- 例外ã®ä¼æ’(Exception Propagation):
- 上ä½ãƒ¡ã‚½ãƒƒãƒ‰ã¸ã®ä¼æ’: メソッド内ã§ä¾‹å¤–ãŒç™ºç”Ÿã—ãŸå ´åˆã€ãã®ãƒ¡ã‚½ãƒƒãƒ‰ãŒãã®ä¾‹å¤–ã‚’ã‚ャッãƒã›ãšã«ã‚¹ãƒãƒ¼ã™ã‚‹ã¨ã€ãã®ä¾‹å¤–ã¯å‘¼ã³å‡ºã—å…ƒã®ãƒ¡ã‚½ãƒƒãƒ‰ã«ä¼æ’ã—ã¾ã™ã€‚ã“ã®ãƒ—ãƒã‚»ã‚¹ãŒä¸Šä½ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚„呼ã³å‡ºã—å…ƒã«ç¶šãã“ã¨ãŒã‚りã¾ã™ã€‚
- ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ã‚„モジュールã¸ã®ä¼æ’: 例外ãŒè¤‡æ•°ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚„クラスをã¾ãŸã„ã§ç™ºç”Ÿã—ãŸå ´åˆã€ä¾‹å¤–ã¯ã“れらã®å¢ƒç•Œã‚’è¶Šãˆã¦ä¼æ’ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã‚³ãƒ³ãƒ†ã‚ストã§ä¾‹å¤–を処ç†ã™ã‚‹æŸ”軟性ãŒå‘上ã—ã¾ã™ã€‚
- 例外ã®ã‚¹ãƒãƒ¼ï¼ˆException Throwing):
- 特定ã®ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚„æƒ…å ±ã¨å…±ã«ã‚¹ãƒãƒ¼: メソッド内ã§å•題ãŒç™ºç”Ÿã—ãŸå ´åˆã€é©åˆ‡ãªã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚„æƒ…å ±ã¨å…±ã«æ–°ã—ã„例外を作æˆã—ã€
throwã‚ーワードを使用ã—ã¦å‘¼ã³å‡ºã—å…ƒã«ã‚¹ãƒãƒ¼ã—ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€å‘¼ã³å‡ºã—å…ƒãŒã‚¨ãƒ©ãƒ¼ã®è©³ç´°ã‚’把æ¡ã—ã‚„ã™ããªã‚Šã¾ã™ã€‚ - カスタム例外ã®ä½¿ç”¨: アプリケーションã§ç‰¹å®šã®æ¡ä»¶ã«å¯¾ã™ã‚‹ã‚«ã‚¹ã‚¿ãƒ 例外クラスを作æˆã—ã€ãれをスãƒãƒ¼ã™ã‚‹ã“ã¨ã§ã€ã‚ˆã‚Šå…·ä½“çš„ã§ç†è§£ã—ã‚„ã™ã„ã‚¨ãƒ©ãƒ¼æƒ…å ±ã‚’æä¾›ã§ãã¾ã™ã€‚
- 特定ã®ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚„æƒ…å ±ã¨å…±ã«ã‚¹ãƒãƒ¼: メソッド内ã§å•題ãŒç™ºç”Ÿã—ãŸå ´åˆã€é©åˆ‡ãªã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚„æƒ…å ±ã¨å…±ã«æ–°ã—ã„例外を作æˆã—ã€
例外ã®ä¼æ’ã¨ã‚¹ãƒãƒ¼ã®çµ„ã¿åˆã‚ã›ã®åˆ©ç‚¹
- å¯èªæ€§ã¨ä¿å®ˆæ€§ã®å‘上: é©åˆ‡ã«ä¾‹å¤–ã‚’ä¼æ’ã•ã›ã‚‹ã“ã¨ã§ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã‚³ãƒ³ãƒ†ã‚ストã§ä¾‹å¤–を処ç†ã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ã‚³ãƒ¼ãƒ‰ãŒã‚ˆã‚Šç†è§£ã—ã‚„ã™ããªã‚Šã€å°†æ¥ã®ä¿å®ˆæ€§ãŒå‘上ã—ã¾ã™ã€‚
- 局所的ãªã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°: メソッド内ã§å•題ãŒç™ºç”Ÿã—ãŸå ´åˆã«å±€æ‰€çš„ãªã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã‚’行ã„ã¤ã¤ã€ãれを呼ã³å‡ºã—å…ƒã«é€šçŸ¥ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€é©åˆ‡ãªã‚¨ãƒ©ãƒ¼å‡¦ç†ãŒç•°ãªã‚‹éšŽå±¤ã§è¡Œã‚れã¾ã™ã€‚
- 柔軟ãªã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ãƒãƒªã‚·ãƒ¼: エラーã®ç™ºç”Ÿç®‡æ‰€ã§é©åˆ‡ãªã‚¨ãƒ©ãƒ¼ãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ãƒãƒªã‚·ãƒ¼ã‚’採用ã§ãã¾ã™ã€‚一部ã®ã‚¨ãƒ©ãƒ¼ã¯å±€æ‰€çš„ã«å‡¦ç†ã—ã€ä»–ã®ã‚¨ãƒ©ãƒ¼ã¯å‘¼ã³å‡ºã—å…ƒã«ä¼æ’ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
例外ã®ä¼æ’ã¨ã‚¹ãƒãƒ¼ã®çµ„ã¿åˆã‚ã›ã«ã‚ˆã‚Šã€ã‚·ã‚¹ãƒ†ãƒ 全体ã§ä¸€è²«æ€§ã®ã‚るエラーãƒãƒ³ãƒ‰ãƒªãƒ³ã‚°ã‚¢ãƒ—ãƒãƒ¼ãƒã‚’確立ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
「019 例外ã¨ä¾‹å¤–処ç†ã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント