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: 탭과 공백의 잘못된 혼합이 발견되었을 때 발생
- IndentationError: 잘못된 들여쓰기가 발견되었을 때 발생
- SystemError: 인터프리터 내부 오류가 발생했을 때 발생
- TypeError: 연산 또는 함수가 잘못된 타입의 객체에 적용될 때 발생
- ValueError: 연산 또는 함수가 잘못된 값을 가진 객체에 적용될 때 발생
- UnicodeError: 유니코드 관련 에러의 기본 클래스
- UnicodeEncodeError: 유니코드 인코딩 에러
- UnicodeDecodeError: 유니코드 디코딩 에러
- UnicodeTranslateError: 유니코드 변환 에러
728x90