Python

[Python] try~except VS if ~ else 무엇을 쓸까?

메린지 2023. 1. 5. 17:21

문득 나는 코딩을 하다 고민이 되는 순간이 찾아왔는데,,

try except를 쓸까 아님 if else를 쓸까 고민이 됐다,,

 

그 굉장히 별 쓰잘데기 없는 질문이라 생각할 수도 있겠지만 일단 나는 호기심이 많고 무엇이 더 효율적인지 궁금했던 ㅋㅋ

 

1) 그냥 스타일 및 방식의 차이일까?

2) 쓰는 상황마다 좀 더 선호될 수 있는 것일까?

 

우선, 구글링을 해봤을 때 Python은 LBYL (Look Befoe You Leap, 실행 전 에러 요소를 조건절로 검사 = IF) style 보다는 EAFP (Easier to Ask for Forgiveness than Permission, 검사 전 실행해 예외 처리 = TRY ) style 를 권장한다고 함

 

일단 다들 알다시피 try~except은 예외처리고, if~else는 조건문이고,, (python except의 종류

https://docs.python.org/3/library/exceptions.html 여기,,)

 

< 뭐가 나을까? >

 

1) 어떤 stackflow에서의 글쓴이는 99% 확률로 에러 안남 + 1% 확률로 에러 -> TRY 문 / 50% 확률로 에러남 + 50% 확률로 에러안남 -> IF 문

 

 

2) 근데 코드 실행결과로는 try 문에서 except 처리 시, if문 보다 5배~10배 느려짐

 

 

3) 근데 결론적으로 elif 문을 이용하는게 False 더라도 추가적인 동작이 용이한데 try except 반복해서 쓰는건 좋지 않은 상황일 수 있음

 

예) 코멘트를 삭제하는 코드를 짜고싶음
1. try - except 의 경우 : try 할때 있으면 지우고 아니면 그냥 except 하고 Error가 잡힐 수만 있고 그 이후 진행 불가

2. if - else 의 경우 : if 할때 있으면 지우고 아닐때도 없는채로 냅둘 수 있음

 

,, 추가예정 ~~