Skip to content

Exception Handling#

try:
    # 예외가 발생할 가능성이 있는 코드
except {{option: specific error type}}:
    # 예외 발생 시 처리할 코드
else:
    # 예외 미 발생 시 처리할 코드
finally:
    # 예외고 뭐고 무조건 실행할 코드
    # 얘가 존재하는 이유는 예외 발생시에도 무조건 실행하기 때문에
    # 동기화 문제를 해결할 타이밍을 제공할 수 있다.
try:
    i = 1
    j = 0
    x = i / j
except:
    print("divide by zero error")
else:
    print(x)

Custom Error#

간단하다. Exception 클래스를 상속하는 클래스를 구현하면 된다. 그리고 __init__에서 부모 클래스의 attr를 참조하는 super 얘가 뭐지 쨌든 를 사용하여 super().__init__("Message") 이런 식으로 메시지를 추가할 수 있다.

super: Return a proxy object which represents the parent's class

class FxxxedUpError(Exception):
    def __init__(self):
        super().__init__("Hey, you are gonna be fired soon 💀💀💀")


raise FxxxedUpError