예외처리란 프로그램 실행 흐름상 오류가 발생했을 때 그 오류를 대처하는 방법이다.
프로그램 실행 중 어떤 원인에 의해 프로그램이 해당 상황에 대처를 하지 못할 경우 비정상적으로 종료되거나 에러 팝업이 뜨는 경우가 있다. 이런 상황을 프로그램 오류라고 한다.
발생 시점에 따른 에러 분류
1. Compile Error
컴파일 시점에서 발생하는 에러로 소스코드를 컴파일러가 컴파일하는 시점에서 소스의 오타나 잘못된 구문, 자료형 체크등 검사를 수행하는데 여기서 발생하는 에러를 컴파일 에러라고 하며 이 시점에서 발생하는 문제들을 수정 후 컴파일을 성공적으로 마칠 경우 클래스 파일(*.class) 파일이 생성된다.
2. Runtime Error
프로그램 실행 시점에서 발생하는 에러로 컴파일러는 컴파일 시점에서 문법 오류나 오타같은 컴파일 시점에서 예측 가능한 오류를 잡아줄 수 있지만, 실행 중 발생할 수 있는 잠재적인 에러까지 잡을 순 없다. 그래서 컴파일은 문제없이 완료되어 프로그램 실행이 되고 실행 도중 의도치 않은 동작에 대처하지 못해 에러가 발생할 수 있다.
3. Logical Error
개발자의 의도와 다르게 동작하는 에러를 뜻한다. 버튼을 클릭하면 팝업이 떠야하는데 새로운 페이지가 뜨는 것처럼 시스템 상 프로그램이 멈추거나 하지는 않지만 의도와는 다르게 동작하는 것을 말한다.
예외 처리하기
소스코드를 견고하게 작성한다고 해도 예외가 줄어들 수 있지만 프로그래머가 아닌 사용자가 원인으로 발생하는 예외는 개발자가 미리 대처를 해줄 수 있다. 예외 처리(Exception Handling)란 프로그래머가 예기치 못한 예외의 발생에 미리 대처하는 코드를 작하는 것으로, 실행중인 프로그램의 비정상적인 종료를 막고 상태를 정상 상태로 유지하는 것이 목적이다.
만약 제대로 예외를 처리하지 못한다면 프로그램은 비정상적으로 종료되며, 종료시점에 처리되지 못한 예외에 대해서 JVM의 예외처리기(UncaughtExceptionHandler)가 받아서 예외의원인을 화면에 출력해준다.
이런 예외를 처리하는 방법으로 try-catch문을 사용한다.
REPPERENCE
'백엔드 > Java' 카테고리의 다른 글
[Web] 서블릿(Servlet)이란? (0) | 2024.01.05 |
---|---|
[Java] 직렬화(Serialized)란? (1) | 2023.12.18 |