출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]
# chapter07-01
# 파이썬예외처리의 이해
# 예외종류
# syntax, type, name, index, value, key..error
# 문법적으로는 틀리지 않았지만, 코드실행 프로세스(단계) 발생하는 예외도 중요

# 1. 예외는 반드시 처리
# 2. 로그는 반드시 남긴다.
# 3. 예외는 던져진다.
# 4. 예외 무시.


# syntaxError / 문법 오류.
# print('error) / print('error'))


# nameError / 참조 없음
# a=10
# b=15
# pring(c)

# ZeroDivisionError
# print(100/0)

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


# KeyError
dic={'name' :'Lee' , 'age' : 41, 'city':'busan'}
# print(dic['hobby'])

# 예외가 없는 것을 가정하고 프로그램을 작성 > 런타임 예외 발생 시 예외 처리 권장(EAFP)


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


# ValueError

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

# FileNotFoundError
# f = open('text.txt') 파일 없음 에러.


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


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


name = ['kim', 'lee', 'park']

# 예제1

try :
    z = 'kim' #'Cho' 예외처리가 된다.
    x = name.index(z)
    print('{} Found it {} in name'.format(z,x+1))
except   ValueError :
    print('not fount it = occurred ValueError!')
else :
    print('ok! else.')

print()


# 예제2

try :
    z = 'kim' #'Cho' 예외처리가 된다.
    x = name.index(z)
    print('{} Found it {} in name'.format(z,x+1))
except : # except Exception : 와 같다.
    print('not fount it = occurred')
else :
    print('ok! else.')

print()


# 예제3

try :
    z = 'cho' #'Cho' 예외처리가 된다.
    x = name.index(z)
    print('{} Found it {} in name'.format(z,x+1))
except Exception as e :
    print(e) #'cho' is not in list
    print('not fount it = occurred')
else :
    print('ok! else.')
finally :
    print('ok! finally!')

print()


# 예제4
# 에외 발생 : raise
# raise 키워드로 예외 직접 발생

try :
    a = 'park'
    if a == 'kim' :
        print('Ok! pass')
    else :
        raise ValueError #강제로 발생시키는에러.
except ValueError :
    print('Occurred! Exception!')
else :
    print('OK! else.')

'python_basic' 카테고리의 다른 글

[파이썬] 파일읽기 / 쓰기  (0) 2020.11.30
[파이썬] 외장함수  (0) 2020.11.30
[파이썬] 내장함수  (0) 2020.11.30
[파이썬] 패키지 / init  (0) 2020.11.23
[파이썬] 모듈  (0) 2020.11.23
[파이썬] 클래스  (0) 2020.11.23
[파이썬] 사용자로부터 입력받기 / input  (0) 2020.11.23

+ Recent posts