위키로그:2014/09/12 - Perl에서 오류를 상세히 보는 방법

From PGWiki

내가 작성한 x.pl이라는 펄 스크립트가 오류를 뿌려대면서 장렬히 전사했다고 생각해보자.

$x = 0;
print 1 / $x;

---- 결과

Illegal division by zero at x.pl line 2.

대부분의 경우 짤막한 오류 메시지만으로도 디버깅을 하겠지만, 조금 더 상세한 정보를 확인하는 방법도 있다.


use diagnostics

use diagnostics는 영문 뜻 그대로 진단을 위해 사용된다.

use diagnostics;

$x = 0;
print 1/ $x;

---- 결과

Illegal division by zero at x.pl line 4 (#1)
    (F) You tried to divide a number by 0.  Either something was wrong in
    your logic, or you need to put a conditional in to guard against
    meaningless input.
    
Uncaught exception from user code:
	Illegal division by zero at x.pl line 4.

가능하면 개발 중일 때만 사용하고, 이후에는 제거하는 것이 좋다.


splain

splain은 펄에 기본적으로 딸려오는 명령행 도구다.

x.pl에서 use diagnostics를 지우고 아래와 같이 실행해보자.

# perl x.pl 2> x.err
# cat x.err
Illegal division by zero at x.pl line 2.
# splain x.err
Illegal division by zero at x.pl line 2 (#1)
    (F) You tried to divide a number by 0.  Either something was wrong in
    your logic, or you need to put a conditional in to guard against
    meaningless input.
# perl x.pl 

간단히 설명하면, splain은 펄의 표준 에러 형식을 입력으로 받아서 상세한 설명을 덧붙이는 기능을 하는 것이다.

이상으로 위 두 가지의 상세 진단을 하는 방법을 확인해보았다.


참고


Potatogim (토론) 2014년 9월 12일 (금) 02:12 (KST)



blog comments powered by Disqus