コンテンツにスキップ

第17章

コード17-01

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    FileWriter fw = new FileWriter("data.txt");
    /* : */
  }
}

コード17-02

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    try {
      FileWriter fw = new FileWriter("data.txt");
      /* : */
    } catch(IOException e) {
      System.out.println("エラーが発生しました。");
    }
  }
}

コード17-03

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    try {
      FileWriter fw = new FileWriter("data.txt");
      fw.write("hello!");
      fw.close();
    } catch(Exception e) {
      System.out.println("何らかの例外が発生しました");
    }
  }
}

コード17-04

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    FileWriter fw = null;
    try {
      fw = new FileWriter("data.txt");
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("エラーです");
    }
    fw.close();
  }
}

コード17-05

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    try {
      FileWriter fw = new FileWriter("data.txt");
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("何らかの例外が発生しました");
    } finally {
      fw.close();
    }
  }
}

コード17-06

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    FileWriter fw = new FileWriter("data.txt");
    try {
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("何らかの例外が発生しました");
    } finally {
      fw.close();
    }
  }
}

コード17-07

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    FileWriter fw;
    try {
      fw = new FileWriter("data.txt");
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("何らかの例外が発生しました");
    } finally {
      fw.close();
    }
  }
}

コード17-08

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    FileWriter fw = null;
    try {
      fw = new FileWriter("data.txt");
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("何らかの例外が発生しました");
    } finally {
      try {
        fw.close();
      } catch (IOException e) {
        ;
      }
    }
  }
}

コード17-09

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    FileWriter fw = null;
    try {
      fw = new FileWriter("data.txt");
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("何らかの例外が発生しました");
    } finally {
      if (fw != null) {
        try {
          fw.close();
        } catch (IOException e) {
          ;
        }
      }
    }
  }
}

コード17-10

Main.java

import java.io.*;

public class Main {
  public static void main(String[] args) {
    try (FileWriter fw = new FileWriter("data.txt");) {
      fw.write("hello!");
    } catch (Exception e) {
      System.out.println("何らかの例外が発生しました");
    }
  }
}

コード17-11

Main.java

public class Main {
  public static void main(String[] args){
    Person p = new Person();
    p.setAge(-128);
  }
}

Person.java

public class Person {
  int age;
  public void setAge(int age) {
    if (age < 0) {     // ここで引数をチェック
      throw new IllegalArgumentException("年齢は正の数を指定すべきです。指定値=" + age);
    }
    this.age = age;    // 問題ないなら、フィールドに値をセット
  }
}

コード17-12

UnsupportedMusicFileException.java

public class UnsupportedMusicFileException extends Exception {
  // エラーメッセージを受け取るコンストラクタ
  public UnsupportedMusicFileException(String msg) {
    super(msg);
  }
}

コード17-13

Main.java

public class Main {
  public static void main(String[] args) {
    try {
      // 試験的に例外を発生させる
      throw new UnsupportedMusicFileException("未対応のファイルです");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

UnsupportedMusicFileException.java

public class UnsupportedMusicFileException extends Exception {
  // エラーメッセージを受け取るコンストラクタ
  public UnsupportedMusicFileException(String msg) {
    super(msg);
  }
}