본문 바로가기
Programming

Python Try구문과 exception종류

by 느리게 걷는 즐거움 2024. 4. 2.
728x90
반응형

Python  Try 구문과 예외 종류

디버깅을 하다보면 에러를 찾기 위한 로그가 절실한 경우가 많습니다. 에러를 빠르게 찾기위해서는 에러로그와 excpetion사용이 참 중요한 것 같습니다. exception을 사용하면 프로그램이 예기치 않은 오류로부터 안전하게 실행될 수 있습니다.

Python에서는 `try`, `except`, `finally` 구문을 사용하여 예외 처리를 할 수 있습니다. 방법을 정리합니다. Try구문과 Exception 종류에 대해 정리합니다.

Try 구문

try:
    # 파일을 열고 처리하는 작업을 수행합니다.
    file = open("example.txt", "r")
    content = file.read()
    print("파일 내용:", content)
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
finally:
    # 예외 발생 여부와 상관없이 항상 실행됩니다.
    # 파일을 닫는 작업을 수행합니다.
    if 'file' in locals():
        file.close()
        print("파일을 닫습니다.")

Try구문에서 가장많이 사용되는 file 처리 예시 입니다. 위의 예시에서 try 블록에서는 파일을 열고 내용을 읽는 작업을 수행합니다.

except 블록에서는 파일을 찾을 수 없는 경우를 처리합니다. 그리고 finally 블록에서는 파일을 닫는 작업을 합니다. 이 때 finally 블록은 예외가 발생하더라도 항상 실행되므로 파일을 안전하게 닫을 수 있습니다.

Try 구분의 exception 정보

except 블록에서는 자신이 처리할 exception을 선택할 수 있습니다. 위의 코드에서는 FileNoFoundError Exception이 발생할때 동작하고 있습니다. 다른 exception도 정리합니다.

ZeroDivisionError

0으로 나눌 때 발생하는 오류입니다.

try:
    # 예외가 발생할 수 있는 코드 블록
    result = 10 / 0  # ZeroDivisionError 발생 가능
except ZeroDivisionError:
    # 특정 예외 처리
    print("0으로 나눌 수 없습니다.")
except Exception as e:
    # 일반적인 예외 처리
    print("예외가 발생했습니다:", e)
finally:
    # 예외와 상관없이 항상 실행되는 부분
     print("실행종료")


FileNotFoundError

파일을 찾을 수 없을 때 발생하는 오류입니다.

try:
    with open("nonexistent_file.txt") as file:
        content = file.read()
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")



TypeError

잘못된 데이터 타입을 사용할 때 발생하는 오류입니다.

try:
    result = "hello" + 123
except TypeError:
    print("잘못된 데이터 타입입니다.")



IndexError

리스트에서 인덱스가 범위를 벗어날 때 발생하는 오류입니다.

try:
    my_list = [1, 2, 3]
    print(my_list[3])
except IndexError:
    print("인덱스가 범위를 벗어났습니다.")


KeyError

딕셔너리에서 존재하지 않는 키를 사용할 때 발생하는 오류입니다.

try:
    my_dict = {'a': 1, 'b': 2}
    print(my_dict['c'])
except KeyError:
    print("키가 존재하지 않습니다.")


Python에서의 예외 처리와 `try` 구문을 사용하는 방법, 그리고 일반적인 예외 종류에 대해 알아보았습니다. 

728x90
반응형

'Programming' 카테고리의 다른 글

Python에서 Json파일 읽기  (0) 2024.04.04
[업무효율화] 단체 메일 발송하기  (0) 2024.04.03
노코드(Nocode)란 무엇인가?  (0) 2024.03.26
검색엔진 등록방법  (0) 2024.03.25
Bing에 블로그 등록하기  (0) 2024.03.25