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

Java

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

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

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

拡張子 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

public class UnsupportedPictFileException  extends Exception{
	public UnsupportedPictFileException(String msg) {
		super(msg);
	}
}

アプリケーションクラス

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan =new Scanner(System.in);
		while(true) {
			System.out.print("どうする:1.画像表示 2.やめる>");
			int select=scan.nextInt();
			switch(select) {
			case 1:
				System.out.print("ファイル名を入力してください>");
				String fileName=scan.next();
				try {
					showFile(fileName);
				} catch (UnsupportedMusicFileException e) {
					System.out.println(e.getMessage());
				}
				break;
			default:
				System.out.println("アプリを終了します。");
				scan.close();
				return;
			}
		}
	}
	public static void showFile(String fileName) throws UnsupportedMusicFileException {
		if(!fileName.contains(".")) {
			throw new UnsupportedMusicFileException("Err:拡張子を含めてください。");
		}
		String[] data=fileName.split("\\.");
		if(data.length != 2) {
			throw new UnsupportedMusicFileException("Err:ファイル名が不正です。");
		}
		String ext=data[1];
		String[] arr= {"jpg","jpeg","png","gif"};
		int i;
		for(i=0;i<arr.length;i++) {
			if(arr[i].equals(ext)) {
				break;
			}
		}
		if(i==arr.length) {
			throw new UnsupportedMusicFileException("そのファイルは表示できません。");
		}
		System.out.println(fileName+"を表示します。");
	}
}

コメント

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