본문 바로가기
C++ 200제/코딩 IT 정보

파이썬 예외 처리(Try except) 기본 문법 2가지

by vicddory 2019. 6. 7.

파이썬 예외 처리 Try except 예제 2개 소개합니다.


C++, C# 등에선 try catch 인데 파이썬은 try except란 차이점이 존재하네요.


◆ Try except + white True (무한 반복)


1
2
3
4
5
6
7
8
9
while True:
     try:
         a = input('number : ')
         b = input('number : ')
 
         print(int(a)+int(b))
         break
     except ValueError:
         print("에러 : 정수를 입력하세요.")
cs


1번 라인에서 while 반복문의 조건을 True로 설정합니다. 무한 반복이지만, 정수 2개의 합을 구하면 예외 처리 루틴을 생략한채로 프로그램이 종료됩니다.


6번 라인에서 입력받은 두 정수를 더해 결과를 출력합니다.


7번 라인에서 break를 호출합니다. 6번 라인이 수행되었다는 뜻은 정수 2개를 입력 받았다는 뜻입니다. 즉, 정수를 2번 입력하면 while 반복문은 종료합니다.


8번, 9번 라인에서는 정수가 아닌 다른 입력값이 들어오면 호출됩니다.


■ 결과



u, g, a를 입력하면 위 결과 화면처럼 except 문이 동작하며 에러 메시지를 출력합니다. 정수 2개를 올바르게 입력하면 정수의 합을 출력하며 프로그램은 종료합니다.


◆ 파이썬 Try except


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
try:
    c = [135]
 
    for i in range(5):
        print(c[i], end=',')
except IndexError:
    print('list index out of range')
except ValueError:
    print('invalid literal for int() with base 10')
except:
    print('예상치 못했던 예외 발생')
else:
    print('예외가 발생하지 않았을 때 호출')
finally:
    print('예외와 상관없이 항상 호출')
cs


■ 결과



2번 라인 리스트 개수는 3입니다. (count = 3)


4번 라인 for 반복문은 5번 동작하며 리스트 c 를 순회합니다. 리스트 인덱스보다 반복값이 크므로 6번 라인 IndexError이 발생하여 7번라인 list index out of range 메시지가 출력됩니다.



관련 글


파이썬 gui 터틀 그리기 예제, 별 삼각형 사각형 star triangle


파이썬 print 재귀함수, 반복 출력, 문자열 거꾸로 뒤집기


파이썬 정렬 소스, 숫자 문자열 예제 6개 sorted join



ⓒ written by vicddory

댓글