구문 1
try:
실행할 코드
except 예외이름:
예외가 발생했을 때 처리하는 코드
구문 2 : as 이용
try:
실행할 코드
except 예외 as 변수:
예외가 발생했을 때 처리하는 코드
구문 3
try:
실행할 코드
except:
예외가 발생했을 때 처리하는 코드
else:
예외가 발생하지 않았을 때 실행할 코드
finally:
예외 발생 여부와 상관없이 항상 실행할 코드
구문 4 : raise
raise 예외명('에러메시지')
구문 5 : re - raise
# re-raise
def three_multiple():
try:
x = int(input('3의 배수를 입력하세요: '))
if x % 3 != 0: # x가 3의 배수가 아니면
raise Exception('3의 배수가 아닙니다.') # 예외를 발생시킴
print(x)
except Exception as e: # 함수 안에서 예외를 처리함
print('three_multiple 함수에서 예외가 발생했습니다.', e)
raise # raise로 현재 예외를 다시 발생시켜서 상위 코드 블록으로 넘김
try:
three_multiple()
except Exception as e: # 하위 코드 블록에서 예외가 발생해도 실행됨
print('스크립트 파일에서 예외가 발생했습니다.', e)
구문 6 : assert문에서의 예외 발생
assert는 지정된 조건식이 거짓일 때 AssertionError 예외를 발생시키며 조건식이 참이면 그냥 넘어갑니다.
assert 조건식
assert 조건식, 에러메시지
예외 만들기
class 예외이름(Exception):
def __init__(self):
super().__init__('에러메시지')
class NotThreeMultipleError(Exception): # Exception을 상속받아서 새로운 예외를 만듦
def __init__(self):
super().__init__('3의 배수가 아닙니다.')
def three_multiple():
try:
x = int(input('3의 배수를 입력하세요: '))
if x % 3 != 0: # x가 3의 배수가 아니면
raise NotThreeMultipleError # NotThreeMultipleError 예외를 발생시킴
print(x)
except Exception as e:
print('예외가 발생했습니다.', e)
three_multiple()
'Python Basic' 카테고리의 다른 글
제너레이터(generator) (0) | 2022.11.23 |
---|---|
이터레이터(iterator) (0) | 2022.11.23 |
decorator 사용법 (0) | 2022.11.23 |
closure 사용법 (0) | 2022.11.23 |
Programming productivity tools (0) | 2022.11.08 |