2012-01-07 3 views
1

나는 키워드 try이 Specman을에 사용되며 특히 코드의 사용이 아래 스 니펫을 알고 싶습니다Specman-e의 try {} 사용}

try { 
    unpack(packing.low,lob,pkt); 
} else{ 
    message(LOW, “Uh-oh!”){print lob using HEX;}; 
    message(LOW,”bad unpack!!!”); 
}; 

답변

0

tryelse이 Specman을의 exception handling 구조입니다. tryblock에 오류가 생성 된 경우 나머지 try 블록 대신 즉시 else 블록이 실행되고 오류는 표시되지 않습니다. 인쇄물이 없음입니다.

lobpkt보다 많은 비트가 "실제 필드"인 경우, 압축을 풀면 오류가 발생합니다. 그런 경우 Specman 런타임은 else 블록으로 점프하고 원래 unpack 오류를 인쇄하는 대신 lob 데이터 구조를 출력합니다. "물리적 필드"가 무엇이고 어떻게 사용되는지에 관해서는 문서를보십시오. 이들은 Specman의 %, packunpack 구조의 동작과 구체적으로 상호 작용하는 이상한 구조입니다. pkt의 실제 필드는 pkt의 "실제 필드"앞에 % 수정 자로 선언됩니다.

+0

정말로 내 원인을 도운 설명에 감사드립니다. – smashash

1

try와 if가 비슷한 경우 조건이 true 일 때 true 블록을 실행하고 이면 false를 실행합니다. 마찬가지로 true 블록에 오류가 있으면 else 블록으로 전환하십시오.