프로그래밍을 하다 보면 수많은 오류를 만나게 됩니다.
프로그래머는 이러한 오류를 제어해주어야 합니다.
제어해주지 않으면 사용자들은 오류를 만났을 때
프로그램 중지되고 영문을 알 수 없어 혼란스럽게 될 것입니다.
오류는 여러 상황에서 발생합니다.
본문에서는 어떤상황에 어떤 오류가 나는지는 다루지 않습니다만
공통적으로 오류가 발생하면 프로그램을 중단하고 오류 메시지를 보여줍니다.
# 기초적인 오류의 예 숫자를 0으로 나누는 경우 >>> 3 / 0 Traceback (most recent call last): File "<stdin>", line 1, in <module> ZeroDivisionError: division by zero
1. try, except문
오류 처리를 위해 try, except문을 사용합니다.
>>> try: ... #code ... except: ... #try내에서 에러발생시 수행할 code
try블록 수행 중 오류가 발생하면 except블록이 실행됩니다.
특정에러만 제어하고 싶은 경우에는 아래처럼 except 옆에 에러명을 붙여 사용합니다.
>>> try: ... 3/0 ... except ZeroDivisionError: ... print('error') 'error'
특정 에러 및 오류 메시지까지 알고 싶을 때는 아래처럼 사용합니다.
>>> try: ... 3/0 ... except ZeroDivisionError as ex: ... print(ex) division by zero
2. try, finally
try문에는 finally절을 통해 항상 실행될 코드를 작성할 수 있습니다.
finally 절은 try문 수행 도중 예외 발생 경우와 상관없이 항상 실행됩니다.
보통 리소스를 close할때 많이 사용됩니다.
>>> fileA = open('file.txt', 'w') >>> try: ... #code ... except: ... print('error') ... finally: ... fileA.close()
fileA에 대해 에러가 발생하든 안 하든 열린 파일을 닫을 수 있습니다.
3. try, else
try문에는 else절을 사용해 except절이 수행되지 않을 때
즉 에러가 발생하지 않을때 실행할 코드를 따로 작성할 수 있습니다.
>>> try: ... ... #code ... except: ... ... #에러시 실행할 code ... else: ... ... #에러 발생하지 않을시 실행할 code
try문에 except, finally, else절 등을 통해 프로그램이 유연하게 진행되도록 코딩을 할 수 있습니다.