파이썬 에러 핸들링: Exceptions
파이썬의 예외 처리는 try, except, else, finally 총 4가지로 이루어져 있다.
try:
실행할 코드
except:
예외가 발생했을 때 처리하는 코드
else:
예외가 발생하지 않았을 때 실행할 코드
finally:
예외 발생 여부와 관계없이 항상 실행되는 코드
모든 에러 확인
try:
...
except Exception as e:
print(e)
여러개의 에러 처리
try:
...
except ValueError as e:
print(e)
except ZeroDivisionError as e:
print(e)
에러 임의 생성
try:
a = int(input())
if a == 0:
raize ZeroDivisionError
else:
b = 100/a
except ZeroDivisionError as e:
print(e)
에러 회피 처리
try:
...
except ZeroDivisionError as e:
pass
사용자 정의 에러 추가
에러를 처리하는 Exception 클래스를 상속받아 사용자 정의 오류 케이스를 작성할 수 있다.
class SokuliError(Exception):
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
age = int(input())
if a == 30:
raise SokuliError('You are 30!')
>> 30
>> You are 30!
else 절 사용
try문 수행중 오류가 발생하면 except절이 수행되고, 에러가 없으면 else절이 수행된다.
try:
age=int(input('나이를 입력하세요: '))
except:
print('입력이 정확하지 않습니다.')
else:
if age <= 18:
print('미성년자는 술을 살 수 없습니다.')
else:
print('고주망태가 되어봅시다.')
finally 절 사용
finally절은 try문 수행 도중 예외 발생 여부에 상관없이 항상 수행한다. 보통 사용한 리소스를 close해야 할 때에 많이 사용된다.
try:
url = input()
super().__init__()
self.driver.get(url)
...
except Exception as e:
print(e)
finally:
self.end_session()
'# Language > Python' 카테고리의 다른 글
[Pyhon] 파이썬 vars() 함수: 객체 속성을 다루는 도구 (0) | 2023.07.24 |
---|---|
[Python] 파이썬 Type Annotation / Type Hinting (0) | 2023.03.24 |
[Python] 파이썬 패키지(Package) 사용법 (0) | 2023.01.12 |
[Python] 파이썬 Class 상속(inheritnace) (0) | 2023.01.10 |