Programming

; develop a program

Back-End/Python

[Python] try, except 문

Clloud_ 2022. 9. 30. 12:07
반응형

이번 포스팅에서는 파이썬에서 예외 처리(Exception Handling)의 try, except 문에 대하여 공부를 해보고자 한다.

 


try, except 문

파이썬에서는 발생한 예외를 유연하게 처리할 수 있도록 try, except 문이라는 예외 처리 구문을 제공한다.

 

try, except 구문

try :
   예외 발생 가능성 있는 코드블록 작성
   
except :
    예외가 발생했을 경우 실행될 코드 블록 작성
    => 예외를 처리하는 코드가 여기 들어간다

try 블록으로 예외가 발생할 가능성이 있는 코드를 감싼다.

만약 try 블록에서 예외가 발생하면, 프로그램은 발생한 예외와 일치하는 except 절을 순서대로 찾는다.

 

except 절은 여러 개를 동시에 사용할 수 있으며, except 절 뒤에 처리할 예외명을 생략하면 발생한 예외의 종류에 상관없이 예외가 발생하면 무조건 해당 except 절이 실행된다.

as 키워드를 사용하여 발생한 예외가 출력하는 에러 메시지를 변수에 따로 저장할 수 있다.

 


특정한 예외만 처리할 경우

try :
    예외 발생 가능성 있는 코드블록 작성
    
except 예외이름:
    예외가 발생했을 경우 실행될 코드 블록 작성
    => 예외를 처리하는 코드가 여기 들어간다.

예외 이름의 예외가 발생했을 경우 except 절이 실행된다.

 


여러 오류를 각각 처리할 경우

try :
   예외 발생 가능성 있는 코드블록 작성
    
except 발생예외이름1:
    처리 코드 블록1
except 발생예외이름2:
    처리 코드 블록2
except:
    처리 코드 블록3

마지막 except: 는 상위에서 처리한 것 이외의 예외가 발생 시 실행될 처리 코드를 넣는다.

 

 

예제 1

순서 1. 예외 발생 가능성 있는 코드 블록을 작성한다.

순서 2. 예외가 발생했을 경우 실행될 코드를 except 블록 내에 작성한다.

print('시작')
try: 
    b = int(input())
    c = 10 / b
    print("나눈 결과:", c)
except:
    print('잘못된 값이 입력되어서 나누기 계산을 못했습니다. -> 예외관련 로그')

    print('종료')

[실행결과]

1을 입력했을 경우
시작
1
나눈 결과: 10.0

2를 입력했을 경우
시작
2
나눈 결과: 5.0

0을 입력했을 경우
시작
0
잘못된 값이 입력되어서 나누기 계산을 못했습니다. -> 예외관련 로그
종료
더보기

에러가 발생하기 전까지 코드가 종료되지 않는다.

 

 

예제 2

순서 1. 예외 발생 가능성 있는 코드 블록을 작성한다.

순서 2. 예외가 발생했을 경우 실행될 코드들을 각각 except 블록 내에 작성한다.

print('시작')
try:
    b = int(input())  # ValueError
    c = 10 / b        # ZeroDivisionError
    
    print("나눈 결과:", c)
except ValueError as va:
    print('Error: 숫자를 입력하세요', va)
except ZeroDivisionError as ze:
    print('Error: 0으로 나눌 수 없습니다.', ze)
except:  # 위 두개를 제외한 나머지를 처리하는 블록
    print('오류가 발생했습니다.')
print('종료')

[실행결과]

# 값을 입력하지 않은 경우
시작

Error: 숫자를 입력하세요 invalid literal for int() with base 10: ''
종료

# 0을 입력했을 경우
시작
0
Error: 0으로 나눌 수 없습니다. division by zero
종료

# 1을 입력했을 경우
시작
1
나눈 결과: 10.0
종료

 


반응형