본문 바로가기
파이썬(Python)/파이썬 지식

파이썬에서 예외 처리 하기 try ~ except

by 기계공학 주인장 2023. 11. 18.
반응형

파이썬에서는 코틀린과 유사하게 try ~ except를 사용해서 예외 처리를 할 수 있습니다.

 

다음과 같은 방법으로 파이썬에서 예외 처리를 할 수 있습니다.


파이썬에서 예외 처리 하는 방법

 

예를 들어 다음과 같은 코드가 있다고 생각하겠습니다.

 

class ExceptExample:

    def make_error(self):
    	# 에러가 발생하는 부분
        return int(5345 / 0)


if __name__ == "__main__":
    error_example = ExceptExample()
    error_example.make_error()

 

정수형 변수를 0으로 나누려고 하기 때문에 에러가 발생합니다.

 

 

여기서 유심히 봐야 할 것은 에러의 종류(ZeroDevisionError)가 같이 출력된다는 것입니다.

 

그럼 다음과 같이 try ~ except를 사용해서 에러를 피해보겠습니다.

 


기본적인 try ~ except 사용 방법

class ExceptExample:

    def make_error(self):
        try:
            return int(5345 / 0)
        except ZeroDivisionError:
            print("에러 발생")


if __name__ == "__main__":
    error_example = ExceptExample()
    error_example.make_error()

 

그럼 다음과 같이 출력됩니다.

 

except 다음에 에러 종류를 지정하면(위 코드에선 ZeroDivisionError) 해당 에러에 대해 에러 처리를 다르게 할 수 있습니다.

 

 


except에서 에러 종류를 지정하기

 

다음과 같이 각 종 에러에 대해 다른 에러 처리를 할 수 있습니다.

 

class ExceptExample:

    def make_error(self):
        try:
            return int(5345 / 0)
        except ZeroDivisionError:
            print("0으로 나누려고 했음")
        except ValueError:
            print("다른 에러 발생")
        except:
            print("알 수 없는 에러 발생")


if __name__ == "__main__":
    error_example = ExceptExample()
    error_example.make_error()

 

 

또한 finally을 사용하면 에러 발생 유무와 상관없이 모든 과정이 끝난 후 동일한 행동을 실시할 수 있습니다.


finally 사용 방법

finally는 다음과 같이 동작합니다.

 

class ExceptExample:

    def make_error(self):
        try:
            print(int(5345 / 0))
        except ZeroDivisionError:
            print("0으로 나누려고 했음")
        except ValueError:
            print("다른 에러 발생")
        except:
            print("알 수 없는 에러 발생")
        finally:
            print("에러 처리 끝")


if __name__ == "__main__":
    error_example = ExceptExample()
    error_example.make_error()

 

 

finally에 오는 코드는 에러 발생 유무와 관계없이 실행됩니다.

 

반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


댓글