본문 바로가기
* Language/Python

[Python] 파이썬 : 예외 처리(try-except-finally) 단계별로 이해하기

by codinguser 2020. 12. 24.

[Python] 파이썬 : 예외 처리(try-except-finally) 단계별로 이해하기
파이썬 예외 처리

 

 

코드를 작성하다가 오류가 출력되었을 때

 

이러한 오류 관리를 보다 쉽게 할 수는 없을까?

 

오류 관리에 대한 문제를 해결해보고자

 

파이썬 예외 처리 try-except-finally를 이해해보자.

 

 

 

 

 

 

 

 

 

단계 1) :  오류가 발생한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
nums = [1,2,3,4,5]
 
print(nums[0])
# 1 정상 출력
 
print(nums[5])
# 오류 발생
# ---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
# <ipython-input-8-d8fadb7f3df1> in <module>
#       2 
#       3 print(nums[0])
# ----> 4 print(nums[5])
#       5 
#       6 
 
# IndexError: list index out of range
 
cs

 

 

 

 

 

 

 

 

 

 

단계2) 단계1 에서 나온걸 보기 편하게 만들자.


: 위에서 발생한 코드들을 일단 try: 안에 넣자.

그리고 try 안에서 발생한 코드 들중 오류가 발생하게 된다면 

"오류 입니다." 라는 문구를 출력하게 하자.

 

 

1
2
3
4
5
6
7
8
9
10
11
nums = [1,2,3,4,5]
 
try:   
    print(nums[0])
    print(nums[5])
    
except:
    print("오류 입니다.")
    
# 1
# 오류 입니다.
cs

 


또는 단계1에서 오류 메시지가 나온 IndexError를 가져와서

해당 IndexError가 발생하면 다음과 같은 문구를 출력하겠다.

1
2
3
4
5
6
7
8
9
10
11
nums = [1,2,3,4,5]
 
try:   
    print(nums[0])
    print(nums[5])
    
except IndexError:
    print("인덱스 오류 발생")
    
# 1
# 인덱스 오류 발생
cs

 

 

 

 

 

단계3) 난 예외 발생 여부와 상관없이 무조건 실행할거다.(finally)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nums = [1,2,3,4,5]
 
try:   
    print(nums[0])
    print(nums[5])
    
except IndexError:
    print("인덱스 오류 발생")
    
finally:
    print("종료 합니다.")
    
# 1
# 인덱스 오류 발생
# 종료 합니다.
cs

 

 

 

 

댓글