본문 바로가기

개발자 모드/파이썬(python)

파이썬 (python) 예외처리 exception 기초예제

728x90
# chapter 07_01
# 파이썬 예외처리의 이해
# 예외 종류
# syntaxerror, typeerror, nameerror, indexerror, valueerror, keyerror...
# 문법적으로 예외가 없지만, 코드 실행 프로세스(단계) 발생하는 예외도 중요
# 1. 예외는 반드시 처리
# 2. 로그는 반드시 남긴다.
# 3. 예외는 던져진다.
# 4. 예외 무시 가능

# syntaxerror
# 문법 에러
# print('error)
# print(('error')
# if True
#     pass

# NameEror : 참조 없음
# a =15
# b =10
# print(c)

# zerodivision error
# print(100/0)

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

# print(x.pop())
# print(x.pop())
# print(x.pop())
# print(x.pop())  # 4번 불러낼수 없다


#keyerror
# dic = {'name' : 'lee', 'age' : 41, 'city' : 'busan'}
# print(dic['hobby']) 없는것을 호출하면 안된다
# print(dic.get('hobby'))  # get을 사용하는 이유는 존재 하지 않을시 none을 return한다


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



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

# valueerror
# x =[10, 50, 90]
# x.remove(50)
# print(x)
# x.remove(200)  # 없는것을 삭제하려고 할때 발생한다.

# file not found keyerror
# f= open("test.txt")  # 없는 파일을 호출시 생김

# type error
# x = [1,2]
# y = 'test'
# print(x + y)  같은 타입이 아닐 시 typeerror가 발생한다.

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

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

# # 예제 1
# try :
#     z = 'cho'
#     x = name.index(z)
#     print('{} found it {} in name'.format(z, x+1))
#
# except ValueError :   # except 만 해도 상관 없음
#     print('not found it -- occured valueerror')
#
# else :
#     print('ok ! else.')
#
# print()
#
# # z = kim 일때는 try 및 else 구문 실행
# # z = cho 일때는 except 블록이 실행


# # 예제 2
#
# try :
#     z = 'cho'
#     x = name.index(z)
#     print('{} found it {} in name'.format(z, x+1))
#
# except ValueError :   # except 만 해도 상관 없음
#     print('not found it')
#
# else :
#     print('ok ! else.')
#
# print()
#



# 예제 3   # 좀 더 고급 스러운 예외 처리

# try :
#     z = 'cho'
#     x = name.index(z)
#     print('{} found it {} in name'.format(z, x+1))
#
# except Exception as e :   # except 만 해도 상관 없음
#     print(e)
#     print('not found it')
#
# else :
#     print('ok ! else.')
#
# finally :   # 무조건 실행하는 구문 !!! 통신에서 초기화 시킬때 사용해야 될때 사용
#     print('ok ! finally ')

print()
print()
print()
print()

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

try :
    a = 'park'
    if a ==' kim' :
        print('ok ! pass !')
    else :
        raise ValueError
except ValueError :
    print('occurred ! exception')

else :
    print('ok pass')


print()
print()
print()

 

결과

 

occurred ! exception

[Finished in 0.149s]

728x90