반응형
예외 처리 작성하기
예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하여 프로그램이 중단되지 않도록 하는 방법입니다. 파이썬에서는 try
, except
, else
, finally
키워드를 사용하여 예외 처리를 할 수 있습니다.
기본 구조
try:
# 예외가 발생할 가능성이 있는 코드
except 예외타입 as e:
# 예외가 발생했을 때 실행할 코드
else:
# 예외가 발생하지 않았을 때 실행할 코드
finally:
# 예외 발생 여부와 관계없이 항상 실행할 코드
예제
1. 기본적인 예외 처리
try:
x = int(input("숫자를 입력하세요: "))
y = int(input("나눌 숫자를 입력하세요: "))
result = x / y
except ValueError:
print("잘못된 입력입니다. 숫자를 입력해야 합니다.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("결과는:", result)
finally:
print("프로그램이 종료되었습니다.")
2. 사용자 정의 예외
class NegativeNumberError(Exception):
pass
def check_positive(number):
if number < 0:
raise NegativeNumberError("음수는 허용되지 않습니다.")
return number
try:
num = int(input("양수를 입력하세요: "))
check_positive(num)
except NegativeNumberError as e:
print(e)
except ValueError:
print("잘못된 입력입니다. 숫자를 입력해야 합니다.")
else:
print("입력한 숫자는 양수입니다.")
finally:
print("프로그램이 종료되었습니다.")
실습 과제
- 사용자로부터 두 개의 숫자를 입력받아 나눗셈을 수행하는 프로그램을 작성하세요. 단, 입력값이 잘못되었을 때와 0으로 나누었을 때 각각에 대해 적절한 예외 처리를 하세요.
- 리스트의 인덱스를 입력받아 해당 인덱스의 요소를 출력하는 프로그램을 작성하세요. 단, 인덱스가 잘못되었을 때와 입력값이 잘못되었을 때 각각에 대해 적절한 예외 처리를 하세요.
- 파일을 열고 읽는 프로그램을 작성하세요. 파일이 존재하지 않을 때와 파일을 읽는 중에 발생하는 오류에 대해 적절한 예외 처리를 하세요.
실습 과제 답안
1. 나눗셈 프로그램
try:
x = int(input("첫 번째 숫자를 입력하세요: "))
y = int(input("두 번째 숫자를 입력하세요: "))
result = x / y
except ValueError:
print("잘못된 입력입니다. 숫자를 입력해야 합니다.")
except ZeroDivisionError:
print("0으로 나눌 수 없습니다.")
else:
print("결과는:", result)
finally:
print("프로그램이 종료되었습니다.")
2. 리스트 인덱스 접근 프로그램
lst = [10, 20, 30, 40, 50]
try:
index = int(input("리스트의 인덱스를 입력하세요: "))
print(f"리스트의 {index}번째 요소는 {lst[index]}입니다.")
except ValueError:
print("잘못된 입력입니다. 정수를 입력해야 합니다.")
except IndexError:
print("잘못된 인덱스입니다. 유효한 인덱스를 입력하세요.")
finally:
print("프로그램이 종료되었습니다.")
3. 파일 읽기 프로그램
try:
filename = input("읽을 파일 이름을 입력하세요: ")
with open(filename, 'r') as file:
content = file.read()
print(content)
except FileNotFoundError:
print("파일을 찾을 수 없습니다.")
except IOError:
print("파일을 읽는 중에 오류가 발생했습니다.")
finally:
print("프로그램이 종료되었습니다.")
이러한 예제들을 통해 예외 처리 방법을 익히고 프로그램의 안정성을 높일 수 있습니다. 예외 처리를 적절히 사용하면 예상치 못한 오류로 인한 프로그램의 비정상 종료를 방지할 수 있습니다.
'실버를 위한 코딩 > 파이썬 연습' 카테고리의 다른 글
[파이썬 연습] 파이썬 데코레이터 (0) | 2024.08.12 |
---|---|
[파이썬 연습] 내장 변수 __name__ (1) | 2024.08.11 |
[파이썬 연습] 클래스와 객체 (0) | 2024.08.09 |
[파이썬 연습] 함수 (0) | 2024.08.08 |
[파이썬 연습] 조건문과 반복문 (0) | 2024.08.07 |