예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하는 방법입니다. 자바에서는 예외 상황을 처리하기 위해 try-catch
문을 사용합니다. 이를 통해 프로그램이 비정상적인 상황에서도 계속 실행될 수 있도록 할 수 있습니다.
try-catch
문
try-catch
문은 예외가 발생할 수 있는 코드의 블록을 감싸고, 해당 예외가 발생한 경우 처리하는 코드를 제공합니다. 기본적인 구문은 다음과 같습니다.
try {
// 예외가 발생할 수 있는 코드
} catch (Exception e) {
// 예외가 발생했을 때 실행할 코드
}
try
블록 내에서 예외가 발생하면, 해당 예외 타입에 맞는 catch
블록으로 제어가 이동합니다. 이후 catch
블록 내의 코드가 실행되며, 예외에 대한 처리가 진행됩니다. catch
블록의 매개변수인 Exception e
는 발생한 예외 객체를 참조하게 됩니다.
다중 catch
블록
하나의 try
문에 여러 종류의 예외를 처리해야 할 경우, 다중 catch
블록을 사용할 수 있습니다. 각 catch
블록은 서로 다른 예외 타입에 대한 처리 코드를 제공합니다. 예를 들어,
try {
// 예외가 발생할 수 있는 코드
} catch (ExceptionType1 e) {
// 예외 타입 1에 대한 처리 코드
} catch (ExceptionType2 e) {
// 예외 타입 2에 대한 처리 코드
} catch (ExceptionType3 e) {
// 예외 타입 3에 대한 처리 코드
}
위와 같이 각각 다른 예외 타입에 대한 처리 코드를 제공할 수 있습니다.
finally
블록
finally
블록은 try-catch
문에서 예외 발생 유무와 상관없이 항상 실행되는 코드 블록입니다. finally
블록을 사용하여 예외 발생 시에도 리소스를 정리하거나 필요한 경우 추가적인 로직을 수행할 수 있습니다.
try {
// 예외가 발생할 수 있는 코드
} catch (Exception e) {
// 예외에 대한 처리 코드
} finally {
// 항상 실행되는 코드
}
try-catch
문에 finally
블록을 추가하여 해당 예외가 처리된 후에도 정리 작업을 할 수 있습니다.
사용자 정의 예외
자바에서는 개발자가 필요에 따라 직접 예외를 정의하여 사용할 수도 있습니다. 이는 Exception
클래스를 상속받아 새로운 예외 클래스를 작성하는 방식으로 이뤄집니다. 예를 들어,
public class CustomException extends Exception {
// 필요한 생성자, 메서드 등을 작성
}
위와 같이 Exception
클래스를 상속받은 CustomException
클래스를 작성할 수 있습니다. 그리고 예외가 발생할 때는 throw
키워드를 사용하여 해당 예외를 던질 수 있습니다.
if (someCondition) {
throw new CustomException();
}
이렇게 사용자 정의 예외를 통해 특정 상황에 대한 예외 처리를 구현할 수 있습니다.