ExceptionUtil.java
public class ExceptionUtil {
public static void computeAndCleanup(int a, int b) {
try {
// 割り算を実行
int result = a / b;
System.out.println("è¨ˆç®—çµæžœ: " + result);
} catch (ArithmeticException e) {
// ゼãƒé™¤ç®—ãŒç™ºç”Ÿã—ãŸå ´åˆã®å‡¦ç†
System.out.println("エラー: ゼãƒã«ã‚ˆã‚‹é™¤ç®—ã§ã™");
} finally {
// ã‚¨ãƒ©ãƒ¼ã®æœ‰ç„¡ã«ã‹ã‹ã‚らãšå¿…ãšå®Ÿè¡Œã•れる
System.out.println("終了処ç†ã‚’実行ã—ã¾ã—ãŸ");
}
}
}解説:finally ブãƒãƒƒã‚¯ã®åŸºæœ¬
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€finally ブãƒãƒƒã‚¯ã®å½¹å‰²ã¨ä½¿ã„方をå¦ã³ã¾ã™ã€‚
finally ã¨ã¯ï¼Ÿ
try-catch-finally æ§‹æ–‡ã«ãŠã‘ã‚‹ finally ã¯ã€ä¾‹å¤–ã®ç™ºç”Ÿã«é–¢ä¿‚ãªãã€æœ€å¾Œã«å¿…ãšå®Ÿè¡Œã•れるブãƒãƒƒã‚¯ã§ã™ã€‚
ファイルを閉ã˜ã‚‹ã€æŽ¥ç¶šã‚’切るã€ãƒã‚°ã‚’出力ã™ã‚‹ã€ãªã©ã®ã€Œå¾Œå§‹æœ«å‡¦ç†ã€ã§ã‚ˆã使ã‚れã¾ã™ã€‚
出力例(テストコードã«ã‚ˆã‚‹çµæžœï¼‰
computeAndCleanup(20, 5);
// → è¨ˆç®—çµæžœ: 4
// → 終了処ç†ã‚’実行ã—ã¾ã—ãŸ
computeAndCleanup(10, 0);
// → エラー: ゼãƒã«ã‚ˆã‚‹é™¤ç®—ã§ã™
// → 終了処ç†ã‚’実行ã—ã¾ã—ãŸæ³¨æ„点
finallyブãƒãƒƒã‚¯ã¯ã€returnãŒå‘¼ã°ã‚Œã¦ã‚‚実行ã•れるSystem.exit()を呼ã³å‡ºã—ãŸå ´åˆãªã©ã¯ä¾‹å¤–çš„ã«å®Ÿè¡Œã•れãªã„
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
finallyを使ãˆã°ã€ä¾‹å¤–ãŒèµ·ãã¦ã‚‚後始末をæ¼ã‚‰ã•ãªã„ã‚³ãƒ¼ãƒ‰ãŒæ›¸ã‘ã‚‹- 例外処ç†ã¯ã€Œç•°å¸¸ç³»ã®å¯¾å‡¦ã€ã ã‘ã§ãªãã€ã€Œæ£å¸¸ã«çµ‚了ã•ã›ã‚‹ãŸã‚ã®æ§‹é€ ã€ã§ã‚‚ã‚ã‚‹
103 ステップアップå•題 「例外修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€Œä¾‹å¤–修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼

// tesh:
// ä¸å®‰ã®ç¨®ã¯ã€ä»Šã¤ã¶ã™ã®ãŒæ£è§£ã€‚解説ã‚ã‚‹ã‹ã‚‰ã€‚


コメント