본문 바로가기
혼공

예외처리

by letsgomin 2026. 4. 27.

예외처리란?

편의점 심부름으로 이해해 보자.

엄마가 이렇게 심부름을 시킨다.

"마트 가서 달걀 사 와."

그런데 만약 마트가 문을 닫았다면? 돈을 잃어버렸다면? 원하는 과자가 품절이라면?

이런 상황들은 집에서 출발할 때는 예상하지 못한 돌발 상황이다.

 

컴퓨터 프로그램도 마찬가지다.
아무리 잘 짜여진 코드라도, 실행하다 보면 예상 못한 오류(에러)가 생길 수 있다.
그런데 컴퓨터는 융통성이 없어서, 오류를 만나면 그냥 프로그램을 꺼버린다;;

이걸 막기 위한 안전장치가 바로 예외처리(Exception Handling) 이다.

 

try?  catch?  finally?

이 세 가지를 심부름에 비유하면 이렇게 된다.

try (시도해봐!)

— "일단 해봐!" 마트에서 달걀을 사는 동작을 해본다. 잘 되면 그냥 통과!

catch (문제 잡아!)

— "그러다 뭔가 잘못되면?" 마트가 문을 닫았거나, 돈이 부족하면 → "아, 이런 문제가 생겼구나! 그러면 이렇게 하자!" 하고 대처하는 행동을 써놓는 곳이다. 프로그램이 꺼지는 대신, 문제를 붙잡아(catch) 처리한다.

finally (어쨌든 마지막엔!)

— "성공하든 실패하든 반드시 해야 할 일" 심부름이 성공했든 실패했든, 집에 돌아와서 현관문은 꼭 닫아야 하지 않은가? 그것처럼, 결과에 상관없이 항상 실행돼야 하는 마무리 동작을 써놓는 곳이다. (예: 열어둔 파일 닫기, 서버 연결 끊기 등)

try {
    // 과자 사러 마트에 가본다!
} catch (Exception e) {
    // 뭔가 잘못됐을 때 여기서 처리 ("마트 문 닫혔네, 다른 곳 가자")
} finally {
    // 성공이든 실패든 집에 와서 현관문은 닫는다
}

 

정리

try = 일단 해봐!
catch = 잘못되면 이렇게 해!
finally = 무슨 일이 있어도 이건 꼭 해!

 

이 세 가지가 합쳐져서, 프로그램이 갑자기 꺼지지 않고 문제가 생겨도 우아하게 대처할 수 있게 해준다.
이게 바로 예외처리(Exception Handling)이다.

 

일이 잘 안 풀려도 그냥 try해보자! 그러다 잘 안되면 catch하고, 무엇보다 반드시 finally 포기하지 마라.