예외 처리 구문
파이썬에서 예외 처리는 프로그램 실행 중에 발생할 수 있는 오류나 예외 상황에 대한 처리를 제공합니다.
예외 처리를 통해 프로그램이 비정상적으로 종료되는 것을 방지하고, 예외 상황에 대한 적절한 대응이 가능합니다.
예외 처리는 try, except, else, finally 등의 키워드를 사용하여 구현됩니다.
1. try 블록
- 예외가 발생할 수 있는 코드를 포함하는 부분
- 프로그램이 이 블록 내의 코드를 실행하면서 예외가 발생하면, 예외 처리 과정으로 진입
2. except 블록
- 예외가 발생했을 때 실행되는 블록으로, 특정 예외 타입에 대한 처리를 정의
- except 블록은 여러 개 사용될 수 있으며, 각각 다른 예외 타입에 대한 처리가 가능
- except Exception as e: 모든 예외를 'Exception' 클래스로 처리하며, 예외 정보를 변수 'e'에 저장
3. else 블록
- 예외가 발생하지 않았을 때 실행되는 블록으로, 선택적으로 사용 가능
- try 블록 안의 코드가 예외 없이 정상적으로 실행되면 else 블록이 실행
4. finally 블록
- 예외 발생 여부와 상관없이 항상 실행되는 블록으로, 선택적으로 사용 가능
- 주로 리소스의 정리나 마무리 작업을 위해 활용
try:
# 예외가 발생할 수 있는 코드 블록
num1 = int(input("1번째 숫자 입력: "))
num2 = int(input("2번째 숫자 입력: "))
result = num1 / num2
except ZeroDivisionError:
# 0으로 나누는 경우의 예외 처리
print("Error: 2번째 숫자는 0이 될 수 없습니다.")
except ValueError:
# 정수가 아닌 값을 입력한 경우의 예외 처리
print("Error: 올바른 숫자를 입력하세요.")
else:
# 예외가 발생하지 않은 경우 실행되는 블록
print(f"결과: {result}")
finally:
# 예외 발생 여부와 관계없이 항상 실행되는 블록
print("프로그램 종료")
# [결과-1]
1번째 숫자 입력: 10
2번째 숫자 입력: 2
결과: 5.0
프로그램 종료
# [결과-2]
1번째 숫자 입력: 8
2번째 숫자 입력: 0
Error: 2번째 숫자는 0이 될 수 없습니다.
프로그램 종료
# [결과-3]
1번째 숫자 입력: 4.3
Error: 올바른 숫자를 입력하세요.
프로그램 종료
예외 종류
- IndexError: 리스트의 인덱스 범위를 초과한 경우
- NameError: 존재하지 않는 변수나 함수를 호출한 경우
- ZeroDivisionError: 0으로 숫자를 나누려고 한 경우
- ValueError: 변환할 수 없는 문자나 숫자를 변환한 경우
- FileNotFoundError: 존재하지 않는 파일을 호출한 경우
- KeyError: 딕셔너리에서 존재하지 않는 키를 사용한 경우
- TypeError: 데이터 타입이 올바르지 않은 경우
- SyntaxError: 코드 구문이 잘못된 경우
- IndentationError: 잘못된 들여쓰기가 있는 경우
- AttributeError: 객체가 가지고 있지 않은 속성이나 메서드를 사용하려는 경우
- Exception: 모든 예외를 'Exception' 클래스로 처리하는 경우
본 게시글은 ChatGPT의 도움을 받아 작성하였습니다.
'Language > Python' 카테고리의 다른 글
NumPy 함수와 메서드 (0) | 2024.01.30 |
---|---|
문자열의 정렬 및 패딩 매서드 (0) | 2024.01.29 |
Dictionary 메서드 (0) | 2024.01.25 |
List 메서드 (0) | 2024.01.24 |
iloc와 loc (인덱싱) (0) | 2024.01.18 |