Python Study

[Python] Try Except 예외처리

Study Seol 2024. 8. 1. 21:40
728x90

[Python] Try Except 예외처리


 

1. Try & Execpt

try:
	#실행할 코드를 넣는다.
except:
	#예외가 발생하면 실행된다.

 

2. 예외처리시 에러 메세지를 표시

try:
	#실행할 코드를 넣는다.
except 예외이름 as 변수:
	#예외가 발생하면 메세지가 실행된다.

except 예외 as 변수 블록: 특정 예외가 발생했을 때 실행될 코드를 작성합니다. 이때 예외는 처리하고자 하는 예외의 이름이고, 변수는 발생한 예외 객체를 참조하는 변수입니다.

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"예외가 발생했습니다: {e}")
  • 예외 객체: 예외가 발생하면 파이썬은 예외 객체를 생성합니다. 이 객체에는 예외에 대한 정보가 포함되어 있습니다.
  • 변수: as 변수 구문을 사용하여 예외 객체를 변수에 할당하면, 해당 변수를 통해 예외 객체에 접근할 수 있습니다.
  • 메시지 출력: 예외 객체를 사용하여 예외 메시지나 기타 정보를 출력하거나 처리할 수 있습니다. 예외 객체는 보통 __str__ 메서드를 가지고 있어서, 이를 출력하면 예외 메시지가 나옵니다.

3. 특정 예외만 처리하는 방식

- except에 예외 이름을 지정한 후 특정 예외가 발생했을 때 실행.

try:
	#실행할 코드를 넣는다.
except 예외이름:
	#예외가 발생하면 메세지가 실행된다.
try:
    result = 10 / 0
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")
except ValueError:
    print("잘못된 값입니다.")
except Exception as e:
    print(f"예외가 발생했습니다: {e}")

 


주요 내장 예외 이름

- 표준 라이브러리에 정의된 예외들 중 일부

  • BaseException: 모든 예외의 기본 클래스
  • Exception: 모든 내장 비시스템 예외의 기본 클래스
  • ArithmeticError: 모든 산술 에러의 기본 클래스
    • ZeroDivisionError: 0으로 나누었을 때 발생
    • OverflowError: 숫자가 너무 커서 표현할 수 없을 때 발생
    • FloatingPointError: 부동 소수점 연산 오류
  • AssertionError: assert 문이 실패할 때 발생
  • AttributeError: 객체에 존재하지 않는 속성에 접근할 때 발생
  • BufferError: 버퍼 관련 연산이 실패할 때 발생
  • EOFError: 입력 함수가 파일 끝에 도달했을 때 발생
  • ImportError: 모듈을 임포트할 수 없을 때 발생
    • ModuleNotFoundError: 모듈이 없을 때 발생
  • LookupError: 시퀀스 인덱스나 키가 잘못되었을 때 발생
    • IndexError: 시퀀스 인덱스가 범위를 벗어났을 때 발생
    • KeyError: 딕셔너리에 키가 없을 때 발생
  • MemoryError: 메모리 할당에 실패할 때 발생
  • NameError: 지역 또는 전역 이름이 발견되지 않았을 때 발생
    • UnboundLocalError: 로컬 변수가 할당되기 전에 참조될 때 발생
  • OSError: 운영 체제 오류가 발생했을 때 발생
    • FileNotFoundError: 파일이나 디렉토리가 존재하지 않을 때 발생
    • PermissionError: 작업 권한이 없을 때 발생
    • NotADirectoryError: 디렉토리가 아닌 파일을 디렉토리로 사용하려고 할 때 발생
  • ReferenceError: 약한 참조가 접근 가능한 객체를 참조하지 않을 때 발생
  • RuntimeError: 다른 범주에 속하지 않는 에러
    • NotImplementedError: 추상 메서드가 구현되지 않았을 때 발생
  • StopIteration: next() 함수가 더 이상 항목을 반환하지 않을 때 발생
  • SyntaxError: 구문 오류가 발견되었을 때 발생
    • IndentationError: 잘못된 들여쓰기가 발견되었을 때 발생
      • TabError: 탭과 공백의 잘못된 혼합이 발견되었을 때 발생
  • SystemError: 인터프리터 내부 오류가 발생했을 때 발생
  • TypeError: 연산 또는 함수가 잘못된 타입의 객체에 적용될 때 발생
  • ValueError: 연산 또는 함수가 잘못된 값을 가진 객체에 적용될 때 발생
  • UnicodeError: 유니코드 관련 에러의 기본 클래스
    • UnicodeEncodeError: 유니코드 인코딩 에러
    • UnicodeDecodeError: 유니코드 디코딩 에러
    • UnicodeTranslateError: 유니코드 변환 에러
728x90