Backend/Python
Python 파이썬 예외 처리 try except
쏠솔랄라
2023. 7. 6. 09:44
예외
: 외부적인 요인으로 인해 발생되는 에러
프로그램 실행 도중에 발생되는 에러
에러
문법상의 문제
프로그램이 실행되지 않는다
예외 처리
예외 발생시 프로그램 오류를 처리하는 구문
try | 예외 감시 영역 | 필수 |
except | 예외 처리 영역 | 필수 |
finally | 필수코드 | 선택 |
else | 예외가 발생하지 않을 경우 실행되는 영역 | 선택 |
import traceback
while True:
try:
a = int(input("정수 입력 : "))
b = int(input("정수 입력 : "))
except:
print("정수만 입력하셔야 합니다.")
try:
print("{} + {} = {}".format(a,b,a + b))
print("{} - {} = {}".format(a,b,a - b))
print("{} × {} = {}".format(a,b,a * b))
print("{} ÷ {} = {}".format(a,b,a / b))
except:
print("0으로 나눌수 없습니다.")
출력화면
예외처리
예외처리는 중첩이 가능하다
while True:
try:
a = int(input("정수 입력 : "))
b = int(input("정수 입력 : "))
try:
print("{} + {} = {}".format(a,b,a + b))
print("{} - {} = {}".format(a,b,a - b))
print("{} × {} = {}".format(a,b,a * b))
print("{} ÷ {} = {}".format(a,b,a / b))
except:
print("0으로 나눌수 없습니다.")
except:
print("정수만 입력하셔야 합니다.")
예외 처리를 할때 except를 여러개 놓고 처리할수 있다
except:
:예외 종류와 상관 없이 처리될수 있게 만든 구문
except 예외클래스:
: 해당 예외와 일치되어야 실행되는 구문
except 예외클래스 as 변수:
: 해당 예외와 일치되어야 실행되는 변수에 오류메세지를 저장한다
-> 모든 예외를 처리하는 except는 항상 가장 마지막에 있어야 한다
while True:
try:
a = float(input("정수 입력 : "))
b = float(input("정수 입력 : "))
print("{} + {} = {}".format(a,b,a + b))
print("{} - {} = {}".format(a,b,a - b))
print("{} × {} = {}".format(a,b,a * b))
print("{} ÷ {} = {}".format(a,b,a / b))
except ZeroDivisionError as zero:
print("0으로 나눌수 없습니다.")
print(type(zero))
print(zero)
except ValueError as value:
print("정수만 입력하셔야 합니다.")
print(value)
except:
print("예외")
지정한 예외 클래스들을 하나의 목록으로 묶을수도 있다
while True:
try:
a = int(input("정수 입력 : "))
b = int(input("정수 입력 : "))
print("{} + {} = {}".format(a,b,a + b))
print("{} - {} = {}".format(a,b,a - b))
print("{} × {} = {}".format(a,b,a * b))
print("{} ÷ {} = {}".format(a,b,a / b))
except (ZeroDivisionError,ValueError) as e:
print(e)
finally:
print("쉬는시간 다 되 간다!")
else
제일 마지막에 실행되는 구문이므로 항상 제일 마지막에 적어야 한다
else 는 try 구문이 정상적으로 실행되었을때만 실행되는 구문
while True:
try:
a = int(input("정수 입력 : "))
b = int(input("정수 입력 : "))
print("{} + {} = {}".format(a,b,a + b))
print("{} - {} = {}".format(a,b,a - b))
print("{} × {} = {}".format(a,b,a * b))
print("{} ÷ {} = {}".format(a,b,a / b))
except ZeroDivisionError as zero:
print("0으로 나눌수 없습니다.")
print(type(zero))
print(zero)
except ValueError as value:
print("정수만 입력하셔야 합니다.")
print(value)
else:
print("실행")
if a == 0 or b == 0:
print("0으로 입력할수 없습니다..")
finally:
print("다시 시작")
강제 예외 발생
while True:
try:
a = int(input("정수 입력 : "))
b = int(input("정수 입력 : "))
if b == 0:
raise ZeroDivisionError("0을 입력하실수 없습니다.")
print("{} + {} = {}".format(a,b,a + b))
print("{} - {} = {}".format(a,b,a - b))
print("{} × {} = {}".format(a,b,a * b))
print("{} ÷ {} = {}".format(a,b,a / b))
except ZeroDivisionError as zero:
print(zero)
except ValueError as value:
print("정수만 입력하셔야 합니다.")