Java(例外クラスの作成と利用)

Java

Q
Exceptionを継承した
UnsupportedPictFileExceptionクラスを作成

アプリケーションクラスにshowFileメソッドを作成。

1public static void showFile(String fileName) throws UnsupportedMusicFileException {
2処理
3}

拡張子 jpeg jpg png gif OK
そうでなければ 例外を発生させる。詳しくは実行例を参照のこと。

[実行例]

どうする:1.画像表示 2.やめる>1
ファイル名を入力してください>sea
Err:拡張子を含めてください。
どうする:1.画像表示 2.やめる>1
ファイル名を入力してください>sea.sea.jpg
Err:ファイル名が不正です。
どうする:1.画像表示 2.やめる>1
ファイル名を入力してください>sea.jpg
sea.jpgを表示します。
どうする:1.画像表示 2.やめる>2
アプリを終了します。

[解答例]
UnsupportedPictFileException.java

1public class UnsupportedPictFileException  extends Exception{
2  public UnsupportedPictFileException(String msg) {
3    super(msg);
4  }
5}

アプリケーションクラス

01import java.util.Scanner;
02 
03public class Main {
04 
05  public static void main(String[] args) {
06    Scanner scan =new Scanner(System.in);
07    while(true) {
08      System.out.print("どうする:1.画像表示 2.やめる>");
09      int select=scan.nextInt();
10      switch(select) {
11      case 1:
12        System.out.print("ファイル名を入力してください>");
13        String fileName=scan.next();
14        try {
15          showFile(fileName);
16        } catch (UnsupportedMusicFileException e) {
17          System.out.println(e.getMessage());
18        }
19        break;
20      default:
21        System.out.println("アプリを終了します。");
22        scan.close();
23        return;
24      }
25    }
26  }
27  public static void showFile(String fileName) throws UnsupportedMusicFileException {
28    if(!fileName.contains(".")) {
29      throw new UnsupportedMusicFileException("Err:拡張子を含めてください。");
30    }
31    String[] data=fileName.split("\\.");
32    if(data.length != 2) {
33      throw new UnsupportedMusicFileException("Err:ファイル名が不正です。");
34    }
35    String ext=data[1];
36    String[] arr= {"jpg","jpeg","png","gif"};
37    int i;
38    for(i=0;i<arr.length;i++) {
39      if(arr[i].equals(ext)) {
40        break;
41      }
42    }
43    if(i==arr.length) {
44      throw new UnsupportedMusicFileException("そのファイルは表示できません。");
45    }
46    System.out.println(fileName+"を表示します。");
47  }
48}

コメント

タイトルとURLをコピーしました