ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 윈도우 응용프로그램 예외처리에 관한 생각
    C#, 닷넷 2010. 9. 9. 23:34
    반응형

    윈도우 응용프로그램 작성중인데 에러처리를 어떻게 해야하나 하고 인터넷을 찾아봐도 관련한 글이 잘 없어서 그냥 제 생각을 정리해 봅니다.
    예외처리를 하기위해서 생각해야 되는 부분은 어떤것이 있을까에 관한 생각 정리입니다.

    일단, 에러와 예외의 차이에 대해서 구분해서 생각을 하더라구요.
    에러는 프로그램 배포후 개발자가 대처 불가능한 부분이라고 생각해서 제외하고 이 글에서는 예외에 대해서만 언급하도록 하겠습니다.

    에러처리시 고려할 점

    해당 프로세스를 종료해야 하는 심각한 예외

    어떤 종류의 예외를 심각하다고 판단할지는 각각의 경우마다 틀릴테지만 예외처리 정책을 수립하기 위해서는 이를 위한 가이드 라인이 필요합니다. 예를 들어, 저 같은 경우는 네트워크 통신을 필요로하는 프로그램을 개발중인데요. 네트워크가 중단되어 버린다면 동작할수 없는 프로그램이라서 심각한 에러로 받아들이고 프로그램을 중단하던가 현 상태까지만 유지되고 더이상의 추가적인 네트워크 작업을 하지 못하도록 막아야 합니다. 은행 전산 프로그램이라면 계좌잔고가 틀리게 되는 예외가 발생한다면 해당 프로세스가 정상적으로 수행되어서는 안되겠죠. 

    프로세스는 지속해서 실행되지만 무시할수 없어서 처리해 주어야 하는 예외

    일반적인 예외처리는 대부분 이 범주안에 들어가게 되지 않을까 생각합니다. 예외가 발생했다고해도 해당 예외를 처리하고 프로세스는 정상적으로 실행되도록 말이죠. 이 경우에는 흔히 나오는 예로써 0으로 나눈다던지, 입력받아야하는 값 이외의 다른 값을 입력으로 받는다던지 하는 여러가지 것들을 생각해 볼 수 있습니다. 
    처리 방법으로는 예외가 발생했다는 것을 사용자에게 알려주고 정상적으로 프로세스를 진행하는 방법과 예외 발생을 사용자 모르게 프로그램 내부적으로 처리하고 정상적으로 프로세스를 진행하는 방법으로 나누어서 생각해 볼 수 있을 것 같습니다.

    예외처리 단위

    예외처리를 적용할 단위를 어떻게 선정할 것인가
    특정 기능 단위로 처리할수도 있고, 함수 단위 혹은 특정 구문 단위로 처리할 수도 있을 것 같습니다.

    예외처리 적용 방법

    에러처리 모듈을 만들어서 사용할 것인가? 처음에는 모듈을 별도로 만들까를 생각을 했지만
    해당 언어에서 제공하는 기본적인 try/catch 구문을 사용하되 에러처리 정책을 세우고 거기에 맞도록 처리하는 방식으로 하는 것이 좋으리라 생각했습니다.
    단, try/catch구문안에서 사용되는 공통적이 에러처리 부분은 함수형태로 만들어서 적용할 수 있으리라 생각됩니다.

    이외에도 생각해볼 수 있는 것들이 많이 있을텐데 아직 경험이 부족한 저로써는 이정도만 생각이 나네요. 

    반응형

    'C#, 닷넷' 카테고리의 다른 글

    Sqlite C# 연동  (0) 2011.04.20
    Moq.net 사용하기  (0) 2010.11.25
    닷넷 Debug 클래스 사용하기  (0) 2010.09.30
    Visual Studio Express Edition  (0) 2010.04.07

    댓글

Designed by Tistory.