파이썬 - 예외 처리 / 데이터베이스

2025. 1. 31. 15:23IT

앞서 살펴본 데이터베이스 테이블을 만드는 코드를 실행했을 때, 처음에는 에러가 없이 데이터베이스를 만들고 그 내부에 테이블을 잘 만들었습니다. 그런나 두 번째 실행을 했을 때는 다음과 같이 에러가 발생을 했습니다. 

 

 

에러 메시지는 소스코드 5번째 라인에서 발생을 했고 CustomerCode 테이블이 이미 존재하는데 또 만들려고 했기 때문에 발생했다고 알려주고 있습니다. 그리고 exit code 1로 프로그램을 종료하고 있습니다. 이것은 프로그램이 끝까지 동작하지 않고 중간에 종료되었음을 보여주는 것입니다. 

 

따라서 이런 경우는 프로그램을 끝까지 에러 없이 동작을 할 수 있도록 프로그램을 만들어주거나 혹은 에러가 발생을 해도 무시하고 프로그램을 진행할 수 있게 처리를 해 줘야 합니다. 일반적인 경우는 에러를 수정을 해야 합니다. 에러가 발생했다는 것은 프로그래머가 의도한 방향과 다르게 동작을 했다는 것이므로 다른 큰 오류를 발생시킬 소지가 크기 때문입니다. 

하지만 이 경우는 이미 테이블이 존재하기 때문에 테이블을 만들 수 없어 에러가 발생한 것입니다. 이미 존재하기 때문에 그냥 무시하고 넘어가도 문제가 없다는 것입니다. 이런 경우에는 예외적으로 에러가 발생했지만 무시하고 다음으로 넘어 갈 수 있는 방법이 있습니다. 이런 방법을 예외처리라고 합니다. 

 

          try:

              수행할 코드

          except:

              예외가 발생했을 때 실행할 코드

 

수행할 코드는 에러가 발생한 부분을 넣으면 되고, 예외가 발생했을 때 실행할 코드는 에러 발생시 추가로 수행해야 할 코드를 넣습니다. 하지만 우리의 경우에는 왜 에러가 발생했는지 정도를 넣어줘도 되겠습니다. 그래서 샘플로 작성한 코드는 다음과 같습니다.

 

024_exception.py

 

except, 즉 에러가 발생하면 print() 함수를 통해서 에러가 발생했음을 사용자에게 알려주는 것입니다. GUI가 들어가 있는 프로그램이라면 메시지 박스를 통해서 사용자에게 알람을 주는 것도 좋은 방법 중의 하나가 되겠습니다. 마지막 라인에 exit code 0로 프로그램이 종료되는데 이 코드가 프로그램이 정상적으로 종료되었다는 메시지입니다.

 

이러한 방법 말고 에러를 원천적으로 막는 방법도 있습니다만, 그 방법은 조금더 sqlite에 대해서 학습을 한 후에 배워보도록 하겠습니다.



반응형