[Day 8 | Java] throws

y♡ding·2024년 10월 23일
0

데브코스 TIL

목록 보기
43/163

throws는 자바에서 메서드 선언부에 사용되어, 해당 메서드가 예외를 던질 가능성이 있음을 호출하는 쪽에 알리는 키워드입니다. 즉, 메서드 내부에서 발생할 수 있는 예외를 처리하지 않고 호출한 곳으로 던질 때 사용합니다. 이를 통해 호출한 메서드에서 예외를 직접 처리하거나, 또 다른 곳으로 예외 처리를 위임할 수 있습니다.

throws의 사용 목적

  • 메서드에서 발생할 수 있는 예외를 호출한 메서드로 전달하려 처리할 수 있도록 합니다.
  • Checked Exception(검사된 예외)에 대해서 예외 처리를 강제합니다. throws를 사용하지 않으면 컴파일러에서 오류가 발생합니다.
  • Unchecked Exception(검사되지 않은 예외)는 throws로 명시할 필요가 없지만, 코드 가독성을 위해 사용하기도 합니다.
public void myMethod() throws IOExcetion {
	// 이 메서드는 IOException을 던질 수 있음
    	thows new IOException("입출력 오류 발생:);
}

2. throws 키워드를 사용하는 이유

  • Checked Exception 처리 강제: 자바에서는 Checked Exception이 발생할 수 있는 메서드는 반드시 예외 처리를 강제합니다. 이를 처리하는 방식은 두 가지입니다:
    • try-catch로 직접 처리
    • throws로 호출한 곳으로 예외를 던져 처리
  • 예외 처리를 위임: 메서드 내부에서 발생한 예외를 직접 처리하지 않고, 호출한 메서드가 그 예외를 처리하도록 할 수 있습니다. 이를 통해 ㅇ{외 처리가 필요 없는 단순 로직과 예외 처리 로직을 분리할 수 있습니다.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class FileReadExample {

	public static void main(String[] args) {
    	
        try {
        	// 메서드를 호출하는 쪽에서 예외를 처리
            readFile("nonexistentfile.txt");
        } catch (FileNotFoundException e) {
        	// 파일이 없을 때 처리
        	System.out.println("파일을 찾을 수 없습니다: " + e.getMessage());
        }
    }
    
    // 파일을 읽는 메서드, 예외를 호출한 메서드로 던짐
    public static void readFile(String fileName) throws FileNotFoundException {
      	//파일 읽기 시도 (예외 발생 가능)
        File file = new File(fileName);
        Scanner scanner = new Scanner(file);
    
        while (scanner.hasNextLine()) {
    	    System.out.println(scanner.nextLine());
        }
        scanner.close();
    }
}

0개의 댓글

Powered by GraphCDN, the GraphQL CDN