throws Exception

드코미·2025년 7월 17일
post-thumbnail

다음은 SWEA에서 제공되는 기본 JAVA 틀이다.

throws Exception은 해당 메서드에서 예외(Exception)가 발생할 수 있음을 선언하고, 그 예외 처리를 메서드 밖으로 위임하겠다는 의미다.
보통 main 메서드에 붙이는 경우는, 프로그램 전체에서 발생하는 예외를 JVM이 처리하게 맡기는 것이다.

import java.util.Scanner;
import java.io.FileInputStream;

/*
   사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
   이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
 */
class Solution
{
	public static void main(String args[]) throws Exception
	{
		// 예외가 발생할 수 있는 코드
	}
}

실무에서는 예외 발생 시 적절한 대응을 위해 구체적인 예외 처리가 필요!
--> throws Exception이 권장되지 않고, try-catch로 어떤 예외가 발생했는지 로깅하거나, 사용자에게 에러 메시지를 보여주는 등의 작업을 하는 등 구체적인 예외 처리 진행!

그러나, 코딩 테스트나 빠른 구현 시에는 예외 처리를 간단히 하기 위해 그냥 throws Exceptions을 사용한다.


⚠️ throws Exception을 안써서 발생한 경고!

실제로 문제를 풀다가 해당 경고를 발견하게 되었다.

throws Exception 안넣으면 readLine()에서 "Unhandled exception type IOException" 경고가 발생한다.
해당 경고는 해당 메서드에서 발생할 수 있는 예외를 처리하세요!라는 자바 컴파일러의 경고다.

🤔 왜 경고를 낼까?

BufferedReader.readLine()IOException이 발생할 수 있는, 위험한 메서드다.
반드시 try-catch로 처리하거나, throws로 던져야 자바가 컴파일 에러를 내지 않는다.

profile
할 수 있다!!!

0개의 댓글