에러 처리

게시판 IDL Q&A 에러 처리

2 답변 글타래를 보이고 있습니다
  • 글쓴이
    • #2569 Reply
      tlseorb0111
      회원

      안녕하세요

      다음과 같은 batch 파일을 이용하여 프로그램에 에러가 발생했을때
      log파일을 작성하려고 합니다.

      출처는 아래 입니다.
      http://m.exelisvis.com/Blogs/IDLDataPoint/TabId/1552/ArtMID/5831/ArticleID/14417/The-Benefits-of-Using-Include-Files-in-IDL.aspx

      무슨 에러가 어느 코드에서 발생했는지는 traceback와 !error_state.msg 를 통해 알 수가 있는데요. 혹시 몇번째 줄에서 에러가 발생했는지 알 수 있는 방법도 있는지요?

      • 이 게시글은 tlseorb0111에 의해 8 years, 7 months 전에 수정됐습니다.
      • 이 게시글은 tlseorb0111에 의해 8 years, 7 months 전에 수정됐습니다.
    • #2573 Reply
      Sangwoo
      회원

      에러와 관련된 정보들이 !error_state라는 시스템 구조체에 통합적으로 저장되도록 되어 있는데, 이 안에서도 사실 에러 발생 위치에 관한 정보는 포함되어 있지가 않습니다. 따라서 다른 방법을 사용해야 하는데요. 바로 HELP 명령을 사용하여 가장 최근에 IDL이 발생시켰던 메시지의 내용을 확인하는 방법입니다. 에러가 발생하는 부분이 있었다면, 당연히 이와 관련된 내용이 가장 최근의 메시지에 담겨있을 것이기 때문입니다. 이를 위해서는 다음과 같은 명령을 위의 IF문 안쪽에 넣어두면 됩니다. (MESSAGE, /RESET 이전이어야 함)

      HELP, /LAST_MESSAGE, OUTPUT=msg
      PRINT, msg

      이렇게 하면 msg라는 변수안에 에러 관련 내용이 담긴 문구 전체가 포함되므로, 출력을 하면 이 내용을 그대로 다 얻을 수 있습니다. 물론 이 경우는 전체 문구안에 포함된 에러 발생 위치의 라인번호를 조회하는 것만 가능합니다. 혹시라도 이 라인번호를 정수값으로서 따로 추출하려면 다소 복잡한 문자 처리 작업이 추가적으로 진행되어야 하겠지요.

    • #2580 Reply
      tlseorb0111
      회원

      답변 감사합니다.

      많은 도움이 돼었습니다.

2 답변 글타래를 보이고 있습니다
'에러 처리'에 답변달기
글쓴이 정보: