Post

Exception 예외?

Exception은 프로그램 실행 중 발생하는 예외 상황으로

Checked exception과 Unchecked exception 이 있다.

exception.png


Checked Exception

컴파일 시점에 발생하며 컴파일러가 예외처리를 강제한다.

처리 방법에는 두 가지가 있다.

  • try-catch 블록을 사용
  • throws 키워드를 사용

예외가 발생할 수 있는 코드를 try로 감싸고 예외가 발생하는 경우 catch 블록에서 처리한다.

throws 키워드는 메서드의 선언부에 사용되어 해당 메서드에서 발생할 수 있는 예외를 호출하는 쪽으로 넘기는 역할을 한다.




Unchecked Exception

런타임 시점에 발생하는 예외이다.
예외 처리를 강제하지 않으며 선택적으로 할 수 있다. 주로 프로그래밍 오류로 발생하며, 예로 NullpointerException, ArrayIndexOutOfBoundsException 등이 있다. 이를 방지하기 위해서는 사전에 널 체크를 하거나 로깅을 통해서 예외를 추적하거나 디버깅 할 수 있다.

예외를 처리하는 방법에는 try catch 문 블럭과 finally 블록을 사용하거나 thwos 키워드를 사용하는 방식, exception을 상속하여 사용자 정의 예외 클래스를 만들어 사용하는 방법들이 있다.




사용자 정의 예외 클래스의 장점

사용자 정의 예외 클래스를 만들어 사용하는 경우 자바에서 예외처리를 더 유연하고 효율적으로 할 수 있다.

디버깅 및 오류 해결에 있어 용이하며, 또한 예외가 발생한 원인을 명확하게 파악할 수 있도록 도와준다. 따라서 코드의 가독성과 유지보수가 용이하다. 또한 특정 예외 상황을 처리할 수 있으며 자세한 정보를 추가함으로써 더 유연하게 사용할 수 있다.

실제 프로젝트에서는 비즈니스 규칙을 위반하는 경우 사용자 정의 예외 클래스를 생성해 예외로 처리할 수 있다.
이처럼 특정 상황에서 프로그램의 흐름을 제어하기 위해 사용자 정의 예외클래스를 만들어 사용할 수 있으며, 이를 통해 예외상황을 파악하고 처리하여 안정성을 높일 수 있다.


사용자 정의 예외 클래스를 만들 때 주의할 점?

사용자 정의 예외클래스를 생성할 때는 발생한 예외의 종류를 명확하게 나타내는 이름을 설정해야 한다.
또한 예외의 특성에 따라 RuntimeException 또는 CheckedException 하나를 상속 받아야 한다. 그리고 예외 객체를 생성할 때 의미 있는 예외 메시지를 함께 전달해야하며, 예외 발생 시점을 확인하여 항상 일관되게 처리해야 한다.


자바에서 기본적으로 제공하는 예외 클래스와의 차이점

사용자 정의 예외 클래스는 사용자가 직접 원하는 예외의 이름과 예외 메시지를 정의할 수 있다.

또한 기본으로 제공되는 예외클래스는 표준의 예외 상황을 다루지만, 사용자 정의 예외 클래스는 특정한 상황, 도메인에 대한 예외를 처리하는데 사용된다.
그렇기 때문에 사용자 정의 예외 클래스는 프로젝트의 특정 요구사항이나 비즈니스 규칙을 반영하여 만들 수 있다.

This post is licensed under CC BY 4.0 by the author.