2017-03-10 7 views
0

Specman E에서 일부 RTL 체커를 개발하고 형식 변환을 사용하여 명령 줄 인수를 처리합니다. 다음Specman의 Null 문자열에서 연산자 캐스팅

코드

if(get_symbol("SWITCH").as_a(uint) > 10) { 

    do something; 

}; 

명령 행 옵션 SWITCH = 10을 갖는다. 문제는 스위치에 오류가없는 경우 테스트가 실패하는 것입니다.

*** Error: Looking for a number but found 'an empty string' 

어떻게이 오류를 피할 수 있습니까? 캐스팅 연산자에 어떤 기본값을주는 방법이 있나요? 그래서 null을 처리 할 때마다 대신 0을 반환합니다. Ofcourse는 먼저 문자열이 null인지 확인한 다음에만 진행할 수 있습니다. 하지만 여분의 줄을 피하고 내가 as_a으로 놀 수 있는지 확인하고 싶습니다.

감사합니다.

답변

1

문자열에서 숫자로 변환하는 방식입니다. 숫자가 아닌 경우 오류가 발생합니다. try 블록으로 감싸서 오류를 잡을 수는 있지만 다른 가능성은 빈 문자열 (다른 비 숫자 문자열이 아님)이 확실하다는 것을 알고 있다면 가장 좋은 해결책은 단순히 문자열 비었다.

0

여분의 회선이 없어도이 문제를 해결할 수 없습니다.

.as_a()string 객체의 기능이지만, SWITCH 명령 행에 정의되지 않은 경우 get_symbol()null 문자열을 반환합니다.