본문 바로가기

Python/기본

[Python] 예외 처리

SyntaxError, TypeError, NameError, IndexError, ValueError, KeyError ...
문법적으로는 예외가 없지만, 코드 실행 프로세스(단계)발생하는 예외도 중요
1. 에외는 반드시 처리
2. 로그는 반드시 남긴다.

3. 예외는 던져진다.
4. 에외 무시

# SyntaxError : 문법 오류
print('error)

# NameError : 참조 없음
a = 10
print(c)

# ZeroDivisionError
print(100 / 0)

# IndexError
x = [50, 70, 90]
print(x[4]) # 에러 발생
print(x.pop())
print(x.pop())
print(x.pop())
print(x.pop()) # 에러 발생

# KeyError
dic = {'name' : 'Kim', 'Age' : 23, 'City' : 'Jeju'}
print(dic['hobby']) # 에러 발생
print(dic.get('hobby')) # error 대신 None 출력 사용 추천

get을 사용해서 에러 발생위험 최소화 하기

# AttributeError : 모듈, 클래스에 있는 잘못된 속성 사용 예외
import time
print(time.time2())

# ValueError
x = [10, 50, 90]
x.remove(200)

# FileNotFoundError
f = open('test.txt')

# TypeError : 자료형에 맞지 않는 연산을 수행 할 경우
x = [1,2] # list
y = (1,2) # tuple
z = 'test' # str

print(x + y)
print(x + z)
print(y + z)

print(x + list(y)) #형 변환하면 출력 가능
print(x + list(z)) #형 변환하면 출력 가능

 

type이 다른 경우 형변환을 하고 사용하기

 

예외 처리 기본
try : 에러가 발생할 가능성이 있는 코드 실행
except 에러명1 : 여러 개 가능
except 에러명2 : 
else : try 블록의 에러가 없을 경우 실행
finally : 항상 실행

 

출처 : 인프런,인프런, 2023-03-10,

https://www.inflearn.com/course/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%AC%B8-%EC%9D%B8%ED%94%84%EB%9F%B0-%EC%98%A4%EB%A6%AC%EC%A7%80%EB%84%90/dashboard

 

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original) - 인프런 | 강의

이미 2만명 이상이 학습하고 만족한 최고의 프로그래밍 입문 강의. 인프런이 비전공자 위치에서 직접 기획하고 준비한 프로그래밍 입문 강의로, 프로그래밍을 전혀 접해보지 못한 사람부터 실

www.inflearn.com

 

'Python > 기본' 카테고리의 다른 글

[Python] 숫자 자료형  (0) 2023.03.11
[Python] print옵션  (0) 2023.03.11
[Python] 파일 읽기 및 쓰기  (0) 2023.03.11
[Python] 기본 외장 함수  (0) 2023.03.10
[Python] 기본 내장 함수  (0) 2023.03.10