예외 처리인 try except에는 처리에 맞는 적절한 예외처리 종류를 작성해야 합니다.
만약, 발생할 수 있는 에러가 여러개라면 예외 처리 종류도 여러개 작성해야 합니다.
파일 입출력의 경우를 예로 보겠습니다.
예외처리 복수 예제
try:
f = open(file_name,'w')
data = dict_input['data']
f.write(data)
f.close()
except KeyError:
print('Key not found')
except (FileNotFoundError, TypeError) :
print('Could not open file')
except:
print('other error')
예외 처리 부분을 보면은 먼저 KeyError를 확인하게 됩니다.
키를 찾지 못해 에러가 발생한 경우에는 except KeyError: 부분에서 에러 내용을 출력하고 처리가 종료됩니다.
하지만 발생한 에러가 다른 에러라면 두 번째에 작성한 FileNotFoundError 또는 TypeError 에러가 아닌지 확인을 하게 됩니다.
만약 지정한 파일을 찾지 못했던가 타입이 에러가 발생했다면 Could not open file 이라는 메세지를 출력합니다.
두 번째 예외 처리에서 작성한 부분에서 주의 깊게 봐야 할 부분은 여러 개의 예외 처리를 하나의 except에도 작성할 수 있다는 것입니다.
예외 처리 종류는 다르지만 같은 에러 메시지로 처리하고 싶은 경우 두번째 예외 처리처럼 작성할 수 있습니다.
그리고 마지막으로 작성한 except:는 첫 번째와 두 번째에 작성한 예외 에러가 아닐 경우 처리하는 부분이 됩니다.
마지막처럼 예외 처리 종류를 생략하는 경우에는 모든 예외 처리를 의미합니다.
처리에 맞는 예외종 류를 작성하지 않고 모든 에러를 잡아주는 except:를 작성하면 편리할 수도 있지만, 어떠한 원인으로 예외 에러가 발생했는지 구분하기 힘들 때도 있습니다.
그렇기 때문에 처리 종류에 맞는 예외 처리 종류를 작성하고 마지막으로 except:를 작성하는 것이 좋습니다.
댓글