파이썬 - try-except 블록
안녕하세요, 미래의 파이썬 마스터들! 파이썬의 놀라운 오류 처리 세계를 안내해 드리게 되어 기쁩니다. 친절한 지역 컴퓨터 과학 교사로서, 저는 수많은 학생들이 오류에绊倒하는 것을 본 적이 많습니다. 하지만 걱정 마세요! 이 튜토리얼을 끝내면 당신은 프로처럼 예외를 처리할 수 있을 것입니다. 시작해보겠습니다!
파이썬 Try-Except 블록
새 레시피를 요리하는 것을 상상해보세요. 모든 재료를 가지고 있는지는 모르지만, 저는 도전해보고 싶어요. 이것은 파이썬에서 try-except 블록이 하는 일과 정확히 같습니다 - 코드를 시도하고, 잠재적인 오류를 우아하게 처리합니다.
기본 구조는 다음과 같습니다:
try:
# 예외를 일으킬 수 있는 코드
except:
# 예외를 처리할 코드
간단한 예제를 살펴보겠습니다:
try:
number = int(input("숫자를 입력하세요: "))
result = 10 / number
print(f"10을 {number}로 나눈结果是 {result}")
except:
print("죄송합니다! 무엇인가 잘못되었습니다.")
이 코드에서:
- 사용자에게 숫자를 입력하도록 요청합니다.
- 10을 그 숫자로 나누려고 시도합니다.
- 무엇이든 잘못되면(예를 들어, 0이나 숫자가 아닌 것을 입력할 때), 우리는 오류를 잡고 친절한 메시지를 출력합니다.
이 코드를 다양한 입력으로 실행해보세요. 2를 입력한 후, 0을 입력한 후, "바나나"를 입력해보세요. 각 경우를 어떻게 처리하는지 확인해보세요?
여러 예외 처리
이제 더 구체적으로 살펴보겠습니다. 다양한 종류의 오류가 발생할 수 있으며, 우리는それ들을 다르게 처리하고 싶을 수 있습니다. 이는 다양한 유형의 상처에 대한 여러 첫 번째 구호-kit과 같습니다.
try:
number = int(input("숫자를 입력하세요: "))
result = 10 / number
print(f"10을 {number}로 나눈结果是 {result}")
except ValueError:
print("올바른 숫자가 아닙니다!")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!")
except:
print("다른 무엇인가 잘못되었습니다.")
여기서 우리는 세 가지 시나리오를 처리합니다:
- 사용자가 숫자가 아닌 것을 입력할 때 (ValueError)
- 사용자가 0을 입력할 때 (ZeroDivisionError)
- 예상치 못한 오류
이 코드를 "오대", 0, 2와 같은 입력으로 실행하여 다르게 반응하는지 확인해보세요!
Try-Except 블록과 Else 절 사용
때로는 예외가 발생하지 않았을 때만 코드를 실행하고 싶습니다. 이 때는 else
절이 매우 유용합니다. 이는 모두 원활하게 진행되었을 때의 보상으로 생각할 수 있습니다!
try:
number = int(input("양수 숫자를 입력하세요: "))
if number <= 0:
raise ValueError("그것은 양수가 아닙니다!")
result = 10 / number
except ValueError as ve:
print(f"오류: {ve}")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!")
else:
print(f"10을 {number}로 나눈结果是 {result}")
print("유효한 숫자를 입력해 주셔서 감사합니다!")
이 예제에서:
- 숫자가 양수인지 확인합니다.
- 만약 그렇지 않으면, 우리는 자신의 ValueError를 일으킵니다.
- 예외가 발생하지 않으면,
else
블록이 실행되어 멋진 메시지를 주입니다.
Finally 절
마지막으로는 finally
절입니다. 이 블록은 예외가 발생했든 말든 항상 실행됩니다. 이는 요리 후 청소와 같이, 레시피가 성공했든 실패했든 무엇이든 실행됩니다.
try:
file = open("중요 데이터.txt", "r")
content = file.read()
result = 10 / int(content)
except FileNotFoundError:
print("해당 파일이 존재하지 않습니다!")
except ValueError:
print("해당 파일에 유효한 숫자가 없습니다!")
except ZeroDivisionError:
print("파일에 있는 숫자는 0입니다!")
else:
print(f"결과는: {result}")
finally:
print("파일을 닫는 중...")
file.close()
이 예제에서:
- 파일을 열고 그 안에 있는 숫자를 읽으려고 시도합니다.
- 다양한 잠재적인 오류를 처리합니다.
- 성공하면 결과를 출력합니다.
- 아무튼
finally
블록에서 파일을 닫습니다.
예외 처리 방법 요약
다음은 우리가 배운 예외 처리 방법을 요약한 편리한 표입니다:
메소드 | 설명 | 사용 사례 |
---|---|---|
try | 예외를 일으킬 수 있는 코드를 둘러싸는 | 항상 except, else, 또는 finally와 함께 사용 |
except | 특정 예외를 처리하는 | 오류를 잡고 처리하는 |
else | try 블록에서 예외가 발생하지 않으면 실행 | try가 성공하면만 실행되는 코드 |
finally | 예외가 발생했든 말든 항상 실행 | 정리 작업(예: 파일 닫기) |
raise | 수동으로 예외를 발생시키는 | 사용자 정의 오류 조건을 만드는 |
기억해주세요, 좋은 오류 처리는 안전벨트를 쓰는 것과 같습니다 - 필요할 때만 그 중요성을 느낍니다! 이 개념을 연습하면, 곧 프로처럼 강한, 오류에 저항할 수 있는 파이썬 코드를 작성할 수 있을 것입니다.
코딩을 즐겁게, 예외가 항상 우아하게 처리되기를 바랍니다!
Credits: Image by storyset