import java.util.Scanner;
public class DivisionProgram {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("最åˆã®æ•´æ•°ã‚’入力ã—ã¦ãã ã•ã„: ");
int num1 = scanner.nextInt();
System.out.print("æ¬¡ã®æ•´æ•°ã‚’入力ã—ã¦ãã ã•ã„: ");
int num2 = scanner.nextInt();
int result = num1 / num2;
System.out.println("çµæžœ: " + result);
} catch (ArithmeticException e) {
System.out.println("ゼãƒã§å‰²ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。å†åº¦å…¥åŠ›ã—ã¦ãã ã•ã„。");
} finally {
scanner.close();
}
}
}
ã“ã®è§£ç”例ã§ã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«2ã¤ã®æ•´æ•°ã‚’入力ã•ã›ã€é™¤ç®—çµæžœã‚’計算ã—ã¦è¡¨ç¤ºã—ã¦ã„ã¾ã™ã€‚ãŸã ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒ0を入力ã—ãŸå ´åˆã«ã¯ ArithmeticException ãŒç™ºç”Ÿã—ã€ã€Œã‚¼ãƒã§å‰²ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“。å†åº¦å…¥åŠ›ã—ã¦ãã ã•ã„。ã€ã¨è¡¨ç¤ºã•れã¾ã™ã€‚最後ã«ã¯ã€ä½¿ç”¨ã—㟠Scanner ã‚’ finally ブãƒãƒƒã‚¯å†…ã§ã‚¯ãƒãƒ¼ã‚ºã—ã¦ã„ã¾ã™ã€‚
基本的ãªä¾‹å¤–処ç†
. 例外処ç†ã®åŸºæœ¬æ§‹é€
Javaã®ä¾‹å¤–処ç†ã¯ã€try, catch, finally ブãƒãƒƒã‚¯ã‚’使用ã—ã¦æ§‹ç¯‰ã•れã¾ã™ã€‚
tryブãƒãƒƒã‚¯: ã“ã®ãƒ–ãƒãƒƒã‚¯å†…ã«ã¯ã€ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ã®ã‚るコードをé…ç½®ã—ã¾ã™ã€‚例外ãŒç™ºç”Ÿã™ã‚‹ã¨ã€ãã®æ™‚点ã§å®Ÿè¡Œã¯tryブãƒãƒƒã‚¯ã‹ã‚‰catchブãƒãƒƒã‚¯ã«ç§»ã‚Šã¾ã™ã€‚catchブãƒãƒƒã‚¯: ã“ã®ãƒ–ãƒãƒƒã‚¯å†…ã«ã¯ã€ç‰¹å®šã®ä¾‹å¤–ãŒç™ºç”Ÿã—ãŸå ´åˆã®å‡¦ç†ãŒè¨˜è¿°ã•れã¾ã™ã€‚例外ãŒç™ºç”Ÿã—ãŸå ´åˆã€è©²å½“ã™ã‚‹catchブãƒãƒƒã‚¯ãŒå®Ÿè¡Œã•れã¾ã™ã€‚finallyブãƒãƒƒã‚¯: ã“ã®ãƒ–ãƒãƒƒã‚¯å†…ã«ã¯ã€å¿…ãšå®Ÿè¡Œã•れる処ç†ãŒé…ç½®ã•れã¾ã™ã€‚ãŸã¨ãˆä¾‹å¤–ãŒç™ºç”Ÿã—ãŸå ´åˆã§ã‚‚ã€finallyブãƒãƒƒã‚¯ã¯å®Ÿè¡Œã•れã¾ã™ã€‚主ã«ã€ãƒªã‚½ãƒ¼ã‚¹ã®è§£æ”¾ã‚„クリーンアップãªã©ã«ä½¿ç”¨ã•れã¾ã™ã€‚
2. 例外クラス
Javaã§ã¯ã€æ§˜ã€…ãªä¾‹å¤–クラスãŒçµ„ã¿è¾¼ã¾ã‚Œã¦ã„ã¾ã™ã€‚主è¦ãªä¾‹å¤–クラスã«ã¯ä»¥ä¸‹ãŒã‚りã¾ã™ã€‚
ArithmeticException: æ•°å¦çš„ãªã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå ´åˆã«ã‚¹ãƒãƒ¼ã•れる例外クラス。NumberFormatException: æ–‡å—列を数値ã«å¤‰æ›ã—よã†ã¨ã—ãŸã¨ãã«ã€é©åˆ‡ãªå½¢å¼ã§ãªã„å ´åˆã«ã‚¹ãƒãƒ¼ã•れる例外クラス。ArrayIndexOutOfBoundsException: é…列ã®ç¯„囲外ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚’使用ã—ãŸã¨ãã«ã‚¹ãƒãƒ¼ã•れる例外クラス。
3. 複数ã®ä¾‹å¤–ã®å‡¦ç†
1ã¤ã® try ブãƒãƒƒã‚¯ã«å¯¾ã—ã¦è¤‡æ•°ã®ç•°ãªã‚‹ä¾‹å¤–クラスã«å¯¾ã™ã‚‹ catch ブãƒãƒƒã‚¯ã‚’é…ç½®ã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€ç•°ãªã‚‹ç¨®é¡žã®ä¾‹å¤–ã«å¯¾ã—ã¦å€‹åˆ¥ã®å‡¦ç†ã‚’行ã†ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚
try {
// 例外ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ã®ã‚るコード
} catch (ArithmeticException e) {
// ArithmeticExceptionã«å¯¾ã™ã‚‹å‡¦ç†
} catch (NumberFormatException e) {
// NumberFormatExceptionã«å¯¾ã™ã‚‹å‡¦ç†
} catch (Exception e) {
// ãã®ä»–ã®ä¾‹å¤–ã«å¯¾ã™ã‚‹å‡¦ç†
}
### 4. 例外ã®ä¼æ’ã¨å†ã‚¹ãƒãƒ¼
メソッド内ã§ä¾‹å¤–ãŒç™ºç”Ÿã™ã‚‹ã¨ã€ãã®ä¾‹å¤–ã¯å‘¼ã³å‡ºã—å…ƒã«ä¼æ’ã—ã¾ã™ã€‚ã¾ãŸã€ãƒ¡ã‚½ãƒƒãƒ‰å†…ã§ã‚ャッãƒã—ãŸä¾‹å¤–ã‚’å†ã³ã‚¹ãƒãƒ¼ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€é©åˆ‡ãªãƒ¬ãƒ™ãƒ«ã§ä¾‹å¤–を処ç†ã§ãã¾ã™ã€‚
```java
void exampleMethod() throws CustomException {
try {
// 例外ãŒç™ºç”Ÿã™ã‚‹å¯èƒ½æ€§ã®ã‚るコード
} catch (SomeException e) {
// 例外を処ç†ã—ãŸå¾Œã€å†ã³ä¾‹å¤–をスãƒãƒ¼
throw new CustomException("Something went wrong.", e);
}
}
5. リソース管ç†ã¨ã‚¯ãƒãƒ¼ã‚ºå¯èƒ½ãªãƒªã‚½ãƒ¼ã‚¹
AutoCloseable インターフェースを実装ã—ãŸã‚¯ãƒ©ã‚¹ã¯ã€try-with-resources 文を使用ã—ã¦ãƒªã‚½ãƒ¼ã‚¹ã®ç®¡ç†ã‚’行ã†ã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã®æ©Ÿèƒ½ã‚’利用ã™ã‚‹ã¨ã€æ˜Žç¤ºçš„ã«ãƒªã‚½ãƒ¼ã‚¹ã‚’クãƒãƒ¼ã‚ºã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’書ãå¿…è¦ãŒã‚りã¾ã›ã‚“。
try (SomeResource resource = new SomeResource()) {
// リソースを使用ã™ã‚‹ã‚³ãƒ¼ãƒ‰
} catch (Exception e) {
// 例外処ç†
}
ã“れã«ã‚ˆã‚Šã€ãƒªã‚½ãƒ¼ã‚¹ã®ã‚¯ãƒãƒ¼ã‚ºæ¼ã‚Œã‚’防ãŽã€ã‚³ãƒ¼ãƒ‰ã‚’ç°¡æ½”ã«ä¿ã¤ã“ã¨ãŒã§ãã¾ã™ã€‚
「019 例外ã¨ä¾‹å¤–処ç†ã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント