Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 루프에서 예외를 처리하는 방법 – try-except 기본 예제

파이썬 루프에서 예외를 처리하는 방법

파이썬에서는 try-except 구문을 사용하여 프로그램 실행 중 발생할 수 있는 예외(Exception)를 안전하게 처리할 수 있습니다. 이 구문을 활용하면 오류가 발생하더라도 프로그램이 비정상적으로 종료되지 않고, 원하는 형태로 오류 메시지를 출력하거나 다음 작업을 계속 진행하도록 만들 수 있습니다.

예외 처리 기본 예제

아래 코드는 문자열의 각 문자를 리스트에 추가한 뒤, 존재하지 않는 인덱스에 접근했을 때 발생하는 예외를 처리하는 예제입니다.

a = []
foo = 'redbullz'
try:
    for i in foo:
        a.append(i)
    print(a[8])
except Exception as e:
    print(e)

실행 결과

list index out of range
Process finished with exit code 0

코드 동작 원리

이 코드가 어떻게 동작하는지 단계별로 살펴보겠습니다.

1. 리스트 생성 및 문자열 순회: 빈 리스트 a를 만들고, 문자열 'redbullz'(총 8글자)를 for 루프로 순회하면서 각 문자를 리스트에 하나씩 추가합니다. 따라서 리스트에는 인덱스 0부터 7까지 총 8개의 요소가 저장됩니다.

2. 예외 발생: print(a[8])은 인덱스 8번 요소에 접근하려고 하지만, 유효한 인덱스 범위는 0~7이므로 IndexError가 발생합니다.

3. 예외 처리: try 블록 안에서 오류가 발생하면 즉시 except 블록으로 제어가 넘어갑니다. as e를 통해 발생한 예외 객체를 변수 e에 담아 오류 메시지를 출력합니다.

4. 정상 종료: 예외가 처리되었기 때문에 프로그램은 중단되지 않고 종료 코드 0과 함께 정상적으로 마무리됩니다.

참고: 더 구체적인 예외 처리하기

위 예제처럼 모든 예외를 포괄하는 Exception 대신, 예상되는 오류 유형을 명확히 지정하는 것이 좋은 코딩 습관입니다. 예를 들어 위 상황에서는 아래와 같이 작성할 수 있습니다.

except IndexError as e:
    print('인덱스 오류:', e)

특정 예외만 처리하면 의도하지 않은 다른 오류까지 무분별하게 숨기는 것을 방지할 수 있어, 디버깅과 코드 유지보수에 큰 도움이 됩니다.