여러 예외 처리하기
Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 65번째.
Python에서는 서로 다른 유형의 예외를 별도의 except 블록에서 처리할 수 있습니다. 이렇게 하면 발생한 특정 오류에 따라 다르게 대응할 수 있습니다.
기본적인 try-except 구조로 시작하세요:
try:
# 예외를 발생시킬 수 있는 코드
pass
except Exception as e:
# 모든 예외 처리
pass여러 예외를 처리하려면 구체적인 except 블록을 추가하세요:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")하나의 except 블록에서 여러 예외 유형을 처리할 수도 있습니다.
try:
# 일부 코드
pass
except (ValueError, TypeError):
print("Invalid input type!")except 블록의 순서가 중요합니다. 더 구체적인 예외를 더 일반적인 예외보다 항상 먼저 배치하세요.
챌린지
쉬움다음 기능을 수행하는 process_data 함수를 만드세요:
- 잠재적인 데이터를 나타내는 문자열 입력을 받습니다
- 이를 정수로 변환한 다음, 100을 해당 정수로 나눕니다
- 결과를 반환합니다
- 최소 3가지 가능한 예외를 처리합니다:
- 입력을 정수로 변환할 수 없는 경우
ValueError( "Input must be a number!" 출력) - 입력이 0인 경우
ZeroDivisionError( "Cannot divide by zero!" 출력) - 그 밖의 예외는 일반적인 처리기로 처리합니다 ("An unexpected error occurred!" 출력)
- 입력을 정수로 변환할 수 없는 경우
직접 해보기
def process_data(input_string):
try:
# 입력 문자열을 정수로 변환해 봅니다
# 100을 입력값으로 나눈 값을 계산합니다
# 결과를 반환합니다
except ValueError:
# 입력을 정수로 변환할 수 없는 경우를 처리합니다
except ZeroDivisionError:
# 입력값이 0인 경우를 처리합니다
except:
# 예기치 않은 다른 예외를 처리합니다
return None이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러