❄️

例外処理

2022/10/23に公開

try/catch

package projava;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class ReadFile {
    public static void main(String[] args) throws IOException {
        var p = Path.of("test.tet"); //エラーを発生させる為に拡張子変更
        String s = Files.readString(p);
        System.out.println(s);

    }


}


/*
Exception in thread "main" java.nio.file.NoSuchFileException: test.tet
	at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
	at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
	at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
	at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
	at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
	at java.base/java.nio.file.Files.readAllBytes(Files.java:3288)
	at java.base/java.nio.file.Files.readString(Files.java:3366)
	at java.base/java.nio.file.Files.readString(Files.java:3325)
	at projava.ReadFile.main(ReadFile.java:10)
*/

下記は、実際に実施した時の画像↓↓


package projava;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;

public class ReadFile {
    public static void main(String[] args) throws IOException {

        try{
            var p = Path.of("test.tet");
            String s = Files.readString(p);
            System.out.println(s);

        }catch (NoSuchFileException e){
            System.out.println("ファイル名:" + e.getFile() + "が見つかりません");

        }

    }
}

NoSuchFileExceptionに対応する例外処理を作成
NoSuchFileExceptionでは、getFileメソッドで見つからなかったファイル名を得ることができる

catch(NoSuchFileException e){
            System.out.println("ファイル名:" + e.getFile() + "が見つかりません");
        }

finaly

Discussion