본문 바로가기
멋쟁이사자처럼 AI스쿨

예외처리(파이썬 강의 Day5)

by 헬푸밍 2023. 1. 8.

예외처리

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)

LowNumber에러가 출력된다.


오늘은 짧게 오류 처리에 대해 알아봤습니다...

 

애쉬아일랜드의 error가 생각나네여...

 

https://www.youtube.com/watch?v=JMw_cyEjNUw 

그럼 에러를 들으면서 안냥...

댓글