Rational ClearQuest API의 루틴에서 예기치 않은 조건이 발생하는 경우 예외가 발생합니다. 호출 프로그램이 예외를 포착하지 못하면, 언어 해석기가 프로그램을 종료합니다. Rational ClearQuest API 호출이 실패할 가능성이 있는 경우 예외를 포착하여 처리해야 합니다.
eval {enter statements you want to monitor};
eval{$objectName->MethodName();}; if ($@) { print "Error using MethodName method. Error: $@\n"; } else { # continue without error ... }
일반적으로 실패가 예상되는 몇 개의 함수는 이 경우의 예외입니다. 특히, validate field 및 set field 함수는 예외를 발생시키는 대신 오류 표시를 리턴합니다. 자세한 정보는 오류 검사 및 유효성 검증을 참조하십시오.
오류 검사
Rational ClearQuest API의 많은 메소드 및 특성에 대해 리턴값을 검사하여 호출이 오류를 리턴하는지 여부를 검증해야 합니다.
if (!defined($result)) { ... };
오류 문자열 리턴값을 가지는 함수 호출의 경우, 오류가 없으면 값이 비어 있고 그렇지 않으면 오류에 대한 설명이 들어 있는 문자열이 리턴됩니다. 메소드 호출 결과를 확인할 수 있으며, 값이 비어 있지 않은 경우에는 변수에서 문자열 값으로 오류를 검색할 수 있습니다.
예를 들어, Entity 오브젝트 SetFieldValue 메소드는 문자열 값을 리턴하는 것으로 정의됩니다. 필드 변경이 허용되고 오퍼레이션에 성공하면 이 메소드는 빈 문자열을 리턴합니다. 그렇지 않고 오퍼레이션이 실패하면, 이 메소드는 오류에 대한 설명이 들어 있는 문자열을 리턴합니다.
The Defect SAMPL00000123 does not have a field named "Invalid_field".
# trap exceptions and error message strings # ... eval { $RetVal = ${$CQEntity}->Validate(); }; # EXCEPTION information is in $@ # RetVal is either an empty string or contains a failure message string if ($@){ print "Exception: '$@’\n"; # other exception handling goes here... } if ($RetVal eq ""){ # success... } else { # failure... # return the message string here... }