컴퓨터활용/티맥스

커서오픈 후 예외처리 기술 필요

멜번초이 2009. 1. 13. 10:53

안녕하세요?


이종구 부장님의 명(?) 을 받고 메일을 보냅니다.  혹시 해당 되시는 분이 있다면 소스를 점검해 주시길 바랍니다.

커서오픈할 경우 프로프레임 스튜디오에서 생성되는 기본 소스에는 에러코드를 세팅하는 부분이 없습니다.프로프레임에서는 기본 틀만 소스생성하고 세부적인 코딩은 개발자가 해야 하는 몫입니다.

대부분의 개발자들이 while 루프 안 쪽에는 코딩을 많이 하시지만 이 커서오픈 부분의 에러처리는간과하고 그냥 내버려 두시는 경우가 많은데 바람직하지 않습니다.

실제로 커서 오픈하다가 오류가 발생하게 되면 단말화면에 제대로된 오류를 받아 볼 수 없기 때문에 난감한 상황에 빠지게 됩니다.


<코딩전 기본 생성된 모습>

 

<코딩한 후 모습>


커서오픈할 때 오류가 발생되면 에러코드를 세트하지 않고 오류 return 해 버렸기 때문에  프레임웍에서 다음과 같은 오류 메시지를 뿌리고 종료처리 하게 됩니다.

오류코드 SPFM00016

업무프로그램에서 오류가 발생하였으나 오류코드 정보가 존재하지 않습니다.
업무 담당팀에 문의하세요(업무오류에 해당하는 오류코드를 작성해야 합니다)


같은 이유로 cursor close 하는 부분에서도 오류가 발생할 경우 PFM_TRY로 바로 적용되어 오류 메시지 세팅없이 RETURN 되어 나가게 되므로 추가적인 예외처리를 기술해 줘야 하는 것은 당연하다.


그리고 여담이지만 개인적으로 코딩에서 while(1) 로 기본생성되어 있는 로직도 개발자가 그대로 놔두고 사용하시는데 적절하게 바꿔서 사용하시는 것이 좋겠습니다. for, do~while 등 루프 처리하는 여러가지 기법이 있는데 while(1) 을 그대로 쓰고 계신 분이 많은데 비추입니다. 


그나마 다행스러운 것은 다음과 같은  질문을 하시는 분이 이번 프로젝트에서는 아직 만나지 못 했다는 겁니다. 지난 프로젝트에는 있었거든요..


while(1) 로 되어 있어서 루프를 한번만 돌아야 되는데 무한루프로 계속 돕니다. 프레임웍에 문제있는거 아닙니까? 


그러나 안타깞게도 이렇게 예외처리를 기술할수 있도록 소스가 생성되는 것이 2008년봄 정도 부터였기 때문에그 이전에 생성한 EMB 디자인일 경우 소스가 생성될때 예외처리 기술이 가능하지 않다. 결국 EMB에서 해당 fetch노드를 삭제하고 다시 붙여야 하는 번거로운 문제가 발생된다. DBIO노드를 삭제할때 예외철, BEFORE AFETER CODE가 함께 삭제되어 버리는 점에 주의해야 한다.

<2008년1월13일>