파이썬에서 예외 처리(Exception Handling)는 프로그램을 안정적으로 운영하는 데 필수적인 요소입니다. 개발 과정에서 다양한 오류가 발생할 수 있으며, 이러한 오류를 처리하지 않으면 프로그램이 중단될 수 있습니다. 이번 글에서는 파이썬의 예외 처리 기법 중 가장 많이 사용되는 try
와 except
구조에 대해 상세히 설명하겠습니다.

예외 처리란 무엇인가?
예외 처리란 프로그래밍 실행 중 발생할 수 있는 오류를 사전에 인지하고, 이를 관리하는 기법을 의미합니다. 오류 발생 시 프로그램이 강제 종료되는 것이 아니라, 지정된 조치를 취하도록 함으로써 사용자에게 보다 나은 경험을 제공할 수 있습니다.
예외 처리의 기본 구조
파이썬에서 예외 처리는 다음과 같은 기본 구조를 따릅니다:
try:
# 실행할 코드
except 예외종류:
# 예외 발생 시 처리할 코드
try
블록 내부에는 오류가 발생할 가능성이 있는 코드를 작성하고, except
블록에서는 해당 오류가 발생했을 때 실행할 코드를 작성합니다. 이 구조는 오류에 대한 대처를 용이하게 만들어 줍니다.
예외 종류
파이썬에는 여러 종류의 예외가 존재하며, 그 중 일부는 다음과 같습니다:
- ZeroDivisionError: 0으로 나누기를 시도했을 때 발생합니다.
- NameError: 정의되지 않은 변수를 사용했을 때 발생합니다.
- TypeError: 자료형이 맞지 않는 연산을 시도했을 때 발생합니다.
- ValueError: 함수에 잘못된 값을 전달했을 때 발생합니다.
다양한 예외 처리
예외 처리를 보다 세밀하게 제어하고 싶다면, 여러 개의 except
블록을 사용하여 특정 오류를 처리할 수 있습니다. 다음은 여러 예외를 처리하는 방법을 보여주는 예시입니다:
try:
number = int(input("숫자를 입력하세요: "))
result = 10 / number
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
except ValueError:
print("유효하지 않은 숫자입니다.")
위의 예제에서는 사용자가 입력한 값이 0일 경우와 숫자가 아닐 경우 각각 다른 메시지를 출력합니다. 이렇게 하면 프로그램이 보다 유연하게 사용자 입력을 처리할 수 있습니다.
finally와 else 절
예외 처리에서는 finally
와 else
를 활용하여 보다 세밀한 흐름 제어가 가능합니다. finally
블록은 예외 발생 여부와 관계없이 항상 실행됩니다. 이는 주로 리소스를 해제하거나 필요한 초기화를 수행할 때 유용합니다.
try:
number = int(input("숫자를 입력하세요: "))
result = 10 / number
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print(f"결과는 {result}입니다.")
finally:
print("프로그램을 종료합니다.")
예외 발생시키기
파이썬에서는 raise
키워드를 사용하여 개발자가 의도적으로 예외를 발생시킬 수도 있습니다. 이를 활용하면 특정 상황에서 예외 처리를 강제로 유도할 수 있습니다.
def check_positive(number):
if number < 0:
raise ValueError("음수는 입력할 수 없습니다.")
return number
try:
check_positive(-10)
except ValueError as e:
print(e)
위의 예제에서는 음수를 입력받았을 때 ValueError
를 발생시키고, 이를 except
블록에서 처리하여 사용자에게 오류 메시지를 제공합니다.

마무리
예외 처리는 파이썬 프로그래밍에서 매우 중요한 개념으로, 사용자에게 보다 나은 경험을 제공하고 프로그램의 신뢰성을 높이는 데 기여합니다. try
와 except
블록을 적절히 사용하여 다양한 오류 상황을 처리해 보시기를 바랍니다. 이러한 기법을 통해 안정적인 소프트웨어 개발을 할 수 있기를 기대합니다.
자주 묻는 질문과 답변
파이썬에서 예외 처리란 무엇인가요?
예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 탐지하고 관리하는 방법입니다. 이를 통해 프로그램이 중단되지 않도록 하여 사용자 경험을 향상시킬 수 있습니다.
파이썬의 try와 except 구조는 어떻게 작동하나요?
try 블록 안에 오류가 발생할 가능성이 있는 코드를 작성하고, except 블록에서는 그 오류가 발생했을 경우 실행할 코드를 정의합니다. 이렇게 하면 에러에 대한 처리가 보다 수월해집니다.
파이썬에서 발생할 수 있는 예외는 어떤 것들이 있나요?
가장 일반적인 예외로는 ZeroDivisionError(0으로 나누기 시도), NameError(정의되지 않은 변수 사용), TypeError(자료형 불일치), ValueError(잘못된 값 전달) 등이 있습니다.
finally와 else 블록은 어떤 역할을 하나요?
finally 블록은 오류 발생 여부에 관계없이 항상 실행됩니다. 주로 리소스를 정리하거나 초기화를 할 때 유용하며, else 블록은 예외가 발생하지 않을 때 실행되는 코드를 포함합니다.
어떻게 예외를 강제로 발생시킬 수 있나요?
파이썬에서 raise 키워드를 사용하여 특정 조건에서 강제로 예외를 발생시킬 수 있습니다. 이를 통해 코드의 특정 상황에 맞춰 사용자에게 적절한 오류 메시지를 제공할 수 있습니다.
0개의 댓글