본문 바로가기

파이썬 기초 공부

예외처리 기초

  • SyntaxError, TypeError, NameError, IndexError, VaLueError, KeyError.... 
  • 문법적으로는 예외가 없지만, 코드 실행 프로세스(단계)발생하는 예외도 중요
  1. 에외처리 시 주의 사항
    1. 예외는 반드시 처리
    2. 로그는 반드시 남긴다.
    3. 예외는 던져진다.
    4.  예외 무시

예외처리 종류

SyntaxError

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

NameError

# NameError : 참조 없음

# a= 10
# b= 15
# print(c)

ZeroDivisionError

# ZeroDivisionError

# print(100 / 0)

IndexError

# Index Error

# x = [50, 70, 90]
# print(x[1])
# print(x[4])
# print(x.pop())
# print(x.pop())
# print(x.pop())
# print(x.pop())

KeyError

# KeyEroor

# dic = {'name': 'Lee', 'Age': 41, 'City': 'Busan'}
# print(dic['hobby'])
# print(dic.get['hobby'])

AttributeError

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

Value Error

# Value Error

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

FileNotFoundError

# FileNotFoundError

# f = open('test.txt')

TypeError

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

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

print(x + list(y)) # 형 변환 후 사용 가능
print(x + list(z)) # 형 변환 후 사용 가능

예외 처리 기본

  1. try : 예러가 발생 할 가능성이 있는 코드 실행
  2. except TypeError: 여러개 가능
  3. except 예러명2:
  4. else : try 블록의 에러가 없을 경우 실행
  5. finally : 항상 실행

예제 1 : ValueError를 사용해서 정확한 예외를 입력

name = ['kim', 'Lee', 'Park']

# 예제1
try:
    z = 'kim'
    x = name.index(z)
    print('{} Found it ! {} in name '.format(z, x+1))
except ValueError:
    print('Not Found it! - Occurred ValueError!')
else:
    print('Ok! else.')

print()

예제 2 : Exception을 사용해서 파이썬 내에서 오류를 찾아주는 역활

try:
    z = 'kim'
    x = name.index(z)
    print('{} Found it ! {} in name '.format(z, x+1))
except Exception:
    print('Not Found it! - Occurred ValueError!')
else:
    print('Ok! else.')

print()

예제 3 : Exception as e: 을 사용해서 특정 예외 오류를 찾아주는 역활

try:
    z = 'kim'
    x = name.index(z)
    print('{} Found it ! {} in name '.format(z, x+1))
except Exception as e:
    print(e)
    print('Not Found it! - Occurred ValueError!')
else:
    print('Ok! else.')
finally:
    print('Ok! finally!')

print()

예제 4 : raise를 이용해서 직접 예외를 발생 시키는 역활

try:
    a= 'Park'
    if a == 'Kim':
        print('OK! Pass')
    else:
        raise ValueError
except ValueError:
    print('Occurred! Exception!')
else:
    print('OK! else!')

'파이썬 기초 공부' 카테고리의 다른 글

패키지 기초  (0) 2023.05.22
모듈 기초  (0) 2023.05.22
클래스 기초  (0) 2023.05.22
파이썬 함수 기초 #2  (0) 2023.05.10
파이썬 함수 기초  (0) 2023.05.10