java - try-catch-finally

imjingu·2023년 9월 10일
0

개발공부

목록 보기
466/481

finally 를 사용하는 예
finally문에는 예외 발생여부와 상관없이 실행되어야 할 코드가 있을 경우 작성하며, 필요없을 경우 생략할 수 있습니다.
디비나 파일의 경우 사용후에는 닫아줘야 함 .(close() 실행)

package chapter20230907.Exception;
import java.util.*;
import java.io.FileInputStream;

public class ExceptionTest03 {

	public static void main(String[] args) {
		
		String path = "./sample_file/test.txt"; // 이스케이프 문자 \를 사용하며 \\ 로 나타냄
		// FileInputStream 는 InputStream 를 상속받았으며, 파일로 부터 바이트로 입력받아, 바이트 단위로 출력할 수 있는 클래스이다.
		FileInputStream fileInputStream = null;
		
		try {
			fileInputStream = new FileInputStream(path); // 파일 넣어줌
			System.out.println("지정한 경로에 파일이 존재합니다.");
		} catch(Exception e) {
			System.out.println("지정한 경로에 파일이 존재하지 않습니다");
		} finally { // 예외 발생여부와 상관없이 실행
			if(fileInputStream != null) {
				try {
					fileInputStream.close(); // 파일 닫아줌
				} catch(Exception e) {;}
				System.out.println("파일을 닫았습니다");
			}
			System.out.println("자원을 해재하고 종료합니다.");
		}

	}

}

package chapter20230907.Exception;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ExceptionTest04 {

	public static void main(String[] args) {
		String path = "./sample_file/test.txt"; // 이스케이프 문자 \를 사용하며 \\ 로 나타냄
		FileInputStream fis = null;
		
		try {
			fis = new FileInputStream(path);
			System.out.println("파일 열기 성공");
		} catch(FileNotFoundException e) { // 예외 확인 본인게 아니면 다음으로 넘어감
			// 다형성을 이용한 예외 처리
			System.out.println("*** FileNotFoundException ***");
		} catch(IOException e) { // 예외 확인 본인게 아니면 다음으로 넘어감
			System.out.println("*** IOException ***");
			e.printStackTrace();
		} catch(Exception e) { 
			System.out.println("*** Exception ***");
			e.printStackTrace();
		}
		finally {
			if(fis != null) {
				try {
					fis.close();
				} catch(IOException e) {;}
				System.out.println("파일을 닫았습니다.");
			}
			System.out.println("프로그램 종료");
		}

	}

}

0개의 댓글