돈이 만드는 세상

#1-4 파이썬 초급 강의 - 예외 처리(try/exception) 본문

프로그래밍/Python

#1-4 파이썬 초급 강의 - 예외 처리(try/exception)

피델리오 2022. 2. 7. 19:12
try:
    위험할 수 있는 구문1
    위험할 수 있는 구문2
    ...
except Exception클래스 이름:
    대응할 코드1
    대응할 코드2
    ...
try:
    print(1)
    a = 10 / 0
    print(2)
except ZeroDivisionError:
    print("0으로 나누면 안됩니다.")

print("안녕")

1
0으로 나누면 안됩니다.
안녕


try 구문 안에 있는 코드를 실행하다가 문제가 있는 구문을 발견 시 예외처리를 하게 됩니다. Exception 클래스를 상속받은 자식(ZeroDivisionError, IndexError, SyntaxError, ...) 등을 이용해서 예외를 처리 할 수 있고, 아니면 Exception을 사용해서 예외처리를 할 수 있습니다. 하지만, 이 방법은 Error를 타겟팅할 수 없기 때문에 추천하지 않는다고 합니다.


Exception를 마지막에 넣어 예측하지 못한 에러를 처리하는 방식으로 사용하기도 합니다.

class Naver:
    def crawl(self):
        print("네이버 크롤링")

class Twitter:
    def crawl(self):
        a = 0/0
        print("트위터 크롤링")

class Yahoo:
    def crawl(self):
        print("Yahoo 크롤링")

crawl_target_list = [
    Naver(),
    Twitter(),
    Yahoo(),
]

result_list = []
for site in crawl_target_list:
    try:
        result = site.crawl()
    except Exception:
        print("나한테 XXX사이트가 에러가 났다고 문자를 보낸다.")
    else:
        result_list.append(result)