예외처리
try, except, finally, raise
코드의 에러를 처리하는 방법
print(1/0)
print('python')
위와 같은 코드를 실행해보면...
이렇게 에러가 뜨고 에러가 뜬 후의 코드는 실행이 안된다!
즉, 에러가 발생하면 코드가 중단된다.
아래와 같이 try~except 안에 코드를 넣어주면 에러가 발생해도 코드를 실행시킬 수 있다.
try:
print(1/0)
except Exception as e:
print(e)
print('python')
에러가 발생했지만 'python'이 출력된 것을 확인할 수 있다.
코드를 아래와 같이 작성하면 에러 여부와 상관없이 'disconnect'를 출력할 수 있다.
- 에러 발생했을 경우
try:
print('connect database') # 리소스 사용
print(1/0)
print('disconnect') # 리소스 반납
except Exception as e:
print(e)
print('disconnect')# 리소스 반납
print('python')
- 에러 발생하지 않았을 경우
try:
print('connect database') # 리소스 사용
print(1/1)
print('disconnect') # 리소스 반납
except Exception as e:
print(e)
print('disconnect')# 리소스 반납
print('python')
이런 경우에 try구문에 에러가 있던 없던 항상 코드를 실행하는 구문인
finally를 사용하면 된다.
- 에러 발생했을 경우
try:
print('connect database') # 리소스 사용
print(1/0)
except Exception as e:
print(e)
finally: # try 구문에 에러가 있던 없던 항상 코드 실행하는 구문
print('disconnect')# 리소스 반납
print('python')
- 에러 발생하지 않았을 경우
try:
print('connect database') # 리소스 사용
print(1/1)
except Exception as e:
print(e)
finally: # try 구문에 에러가 있던 없던 항상 코드 실행하는 구문
print('disconnect')# 리소스 반납
print('python')
raise는 강제로 에러를 발생시킨다.
아래와 같이 에러를 만들어보자!
class LowNumber(Exception):
def __str__(self):
return 'insert number greater than 10!'
이렇게 에러를 만든 후...
입력 숫자가 10보다 작거나 같으면 LowNumber에러를 발생시키는 함수를 작성하자!
def input_number(number):
if number <= 10:
raise LowNumber()
print(number)
이렇게 15를 넣으면
input_number(15)
15가 출력되고...
5를 넣으면
input_number(5)
오늘은 짧게 오류 처리에 대해 알아봤습니다...
애쉬아일랜드의 error가 생각나네여...
https://www.youtube.com/watch?v=JMw_cyEjNUw
그럼 에러를 들으면서 안냥...
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/004.gif)
'멋쟁이사자처럼 AI스쿨' 카테고리의 다른 글
네이버 증권 종목토론실수집(과제) (2) | 2023.01.13 |
---|---|
멋쟁이사자처럼 4주차 회고 (0) | 2023.01.12 |
모듈과 패키지(파이썬 강의 Day5) (0) | 2023.01.08 |
입력과 출력(파이썬 강의 Day5) (0) | 2023.01.06 |
클래스 설계(파이썬 강의 Day5) (0) | 2023.01.06 |
댓글