예외(exception) 런타임 오류 (runtime error)
프로그램 실행중에 발생하는 오류를 말한다.
파이썬은이러한 예외상황과 오류에 대한 처리를 위해 try except 구문을 사용한다.
try-except 사용
try:
a, b = map(int, input().split())
except:
break
print(a,b)
try: 구문에서는 에러가 발생할 여지가 있는 문장을 작성하고
except: 구문에서는 에러가 발생하였을 시 실행시킬 문장을 작성한다.
즉, 아무런 에러가 발생하지 않는 경우에는 except를 지나쳐 print(a,b) 코드를 실행시키는 것이다.
try except else finally
try:
에러가 발생할수도 있는 구문
except:
에러가 발생했을 때 실행할 구문
else:
에러가 발생하지 않았을 때 실행하는 구문
finally:
어떠한 상황에도 무조건 실행시키는 구문
try except 예시
try:
a = int(input())
b = int(input())
div = a / b
print('a 나누기 b 값 == %d' % div)
except:
print('예외발생')
정상적인 결과
6
2
a 나누기 b 값 == 3.0
예외상황 1 [ b의 값이 0 ]
1
0
예외발생
예외상황 2 [ 문자열 입력 ]
two
예외발생
발생된 예외상황 확인
try except 구문의 경우 except에 사용자가 설정한 내용 외에는 정확한 에러의 종류에 대한 설명이 없다.
이러한 문제를 해결하기위해 아래의 구문을 추가해 준다.
except Exception as e:
print('예외발생', e)
즉, 아래와 같이 except 구문을 설정하면 된다.
try:
a = int(input())
b = int(input())
div = a / b
print('a 나누기 b 값 == %d' % div)
except Exception as e:
print('예외발생', e)
출력값을 한번 비교해보자.
1
0
예외 발생 division by zero
0 으로 나굿셈을 시도하려는 에러를 설명한다.
two
예외 발생 invalid literal for int() with base 10: 'two'
잘못된 형식의 변수값 입력을 의미한다.
else 구문의 활용
앞선 설명에서 else: 의 경우 구문에 오류가 없을 시 실행하는 구문이라고 말했다.
사실 else 구문은 try 구문 안에 넣어도 크게 상관이 없다고 하니 알아만 두자.
try:
a = int(input())
b = int(input())
div = a / b
except Exception as e:
print('예외발생', e)
else:
print('a 나누기 b 값 == %d' % div)
이러한 형식으로 구문에 오류가 없을 시 except 구문을 지나쳐 else 구문을 실행시키는 것이다.
Finally 구문의 활용
finally 구문은 앞선 구문들에 대해서 예외가 발생하거나 그렇지 않거나 상관 없이 무조건 실행을 하는 구문이다.
try:
a = int(input())
b = int(input())
div = a / b
except Exception as e:
print('예외발생', e)
else:
print('a 나누기 b 값 == %d' % div)
finally:
print('나눗셈 종료')
이러한 경우 어떠한 오류가 있거나 오류가 없더라도 finally 구문은 실행이 된다.
1
0
예외 발생 division by zero
나눗셈 종료
two
예외 발생 invalid literal for int() with base 10: 'two'
나눗셈 종료
6
2
a 나누기 b 값 == 3.0
나눗셈 종료
'Python > Python 기초' 카테고리의 다른 글
[Python] 파이썬 while 반복문 (0) | 2021.08.21 |
---|---|
[Python] 반복문 (0) | 2021.06.02 |
[Python] 조건문 (0) | 2021.06.02 |
[Python] 기본 입출력 (0) | 2021.06.02 |
[Python] 사전 자료형 (0) | 2021.06.02 |