Contents
접기
예외 발생 사항
a = [1,2,3,4,5]
# print(a[5]) # IndexError 발생
b = '1234a'
# c = int(b) # ValueError 발생
# f = open("notexists.txt","r") #FileNotFound 발생
# data = 10/0 # ZeroDivisionError 발생
mydic = {}
# print(mydic['key']) # KeyError 발생
예외 처리 방법(try-except)
try:
data = 10/0
except:
print("0으로 나눌 수 없습니다.")
print("end\n")
0으로 나눌 수 없습니다.
end
에러 출력 보여줌
# 다른 예외 X 오직 ZeroDivisionError만
try:
data = 10/0
except ZeroDivisionError as e:
print("0으로 나눌 수 없습니다.")
print(e)
print("end")
0으로 나눌 수 없습니다.
division by zero
end
예외 처리(try ~ except ~ except)
try:
a = [1,2,3]
print(a[3]) # 먼저 발생된 걸 처리
print(10/0)
except ZeroDivisionError: # 모든 예외가 한곳에서
print("0으로 나눌 수 없습니다")
except IndexError :
print("인덱스의 범위를 벗어났습니다")
print("end")
인덱스의 범위를 벗어났습니다
end
예외 처리 (try ~ except ~ finally)
finally : 반드시 실행 된다.
try:
a =[1,2,3]
print(a[3])
except IndexError:
print("인덱스의 범위를 벗어났습니다")
finally: # return 구문을 만나도 실행됨
print("반드시 실행되는 코드")
print("end")
인덱스의 범위를 벗어났습니다
반드시 실행되는 코드
end
def inputNum():
num = int(input("양수 입력:"))
if num<0:
print("양의 정수만 입력:")
else:
return num
num = inputNum()
print(num)
양수 입력: -3
양의 정수만 입력:
None
def inputNum():
num = int(input("양수 입력"))
if num < 0:
raise ValueError("양의 정수만 입력")
# raise : 에러를 인위적으로 발생해 쓰게 하는 것
return numd
try:
num = inputNum()
print(num)
except ValueError as e:
print(e)
양수 입력 -2
정수 입력 -2 이므로 에러 발생
양의 정수만 입력
'국비 교육 > 파이썬' 카테고리의 다른 글
[파이썬] Class (상속, 은닉) (0) | 2023.12.28 |
---|---|
[파이썬] File I/O , File 과 Directory (0) | 2023.11.05 |
[파이썬] 함수 - 2 (0) | 2023.11.05 |
[파이썬] 함수 -1 (0) | 2023.11.05 |