Python

예외처리

Yokina 2017. 1. 7. 23:27

예외처리

try:

num = int(input("숫자입력"))

except ValueError:

print("숫자만입력")

try:

6/0

except ZeroDivisionError:

print("0으로나눔")


try :

6/0

except (ZeroDivisionError, ValueError) :

print("error")

try :

6/0

except ZeroDivisionError :

print('나누기에러')

except ValueError

print('값에러')


try :

num = int(input("숫자입력"))

except ValueError :

print('숫자가 아닙니다')

else :

print(num)

try :


except ValueError :


else :


finally :


의도적 에러 발생   -  raise 에러종류(에러발생시 메세지)

try :

num = int(input("input number"))

raise ValueError('0보다 작음', '0 임', '0보다 큼')

except ValueError as e :

if num < 0 :

print(e.args[0])

elif num == 0 :

print(e.args[1])

elif num > 0 :

print(e.args[2])




파일 처리 관련 에러 예제

try:
     data = open('missing.txt', "w")
     print(data.readline(), end='')
except IOError as err : 
     print('File error : ' + str(err) )     #err객체를 출력하기 위해 문자열로 변환
finally : 
     if 'data' in locals() :                 #현재 사용할 수 있는 이름을 반환하는 함수 ... locals()  
          data.close()


위 예제를 with를 사용한 예제

try : 
     with open('missing.txt', "w") as data : 
          print("File Error", file=data)
except IOError as err : 
     print('File error  :   ' + str(err))