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+"を表示します。");
}
}
コメント