try문을 일반적인 프로그램을 개발할 땐 피하자
오류가 발생할 수 밖에 없는 상황에선(특히, 프레임워크를 쓸 때) try 문을 작성해도 상관없지만 일반적인 프로그램은 try문을 쓰는것을 최소한하면 좋다.
성능적인 부분이나 오류 통제의 측면에서 최선의 방법은 아니기 때문이다.
글자를 int 로 만들 때 에러
>> .isnumeric() 을 먼저 사용
>> re 모듈을 이용하여 정규표현식으로 처리
>> try는 최후의 수단
python 코드를 짜면서 에러가 날 때
test = "테스트"
test = int(test)#ValueError: invalid literal for int() with base 10: '테스트'
"테스트" 문자열은 int 로 변경 할 수 없음 >> ValueError
try 문을 이용하여 예외처리
test = "테스트"
try :
print(test) #테스트
test = int(test)
#해당 라인 실행 되지 않음
print(test)
except ValueError as e:
print(e) #invalid literal for int() with base 10: '테스트'
ValueError 발생시 except ValueError 로 가서 실행 됨
finally 문 이용하여 에러가 발생하더라도 다음코드를 실행시키기
test = "테스트"
try :
print(test) #테스트
test = int(test)
print(test)
except ValueError as e:
print(e)
finally :
print(test) #테스트
finally 절은 try 문 수행 도중 예외 발생 여부에 상관없이 항상 실행한다.
else 는 오류가 발생하지 않으면 실행된다.
def test(any) :
try :
test = int(any)
except ValueError as e:
return e
else :
return test
test(123) #123
test("테스트") #ValueError("invalid literal for int() with base 10: '테스트'")
오류 회피하기 - pass
test = "테스트"
try :
test = int(test)
except ValueError as e:
pass
오류 일부러 발생시키기 - raise
raise ValueError