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

try и else являются Specman в exception handling конструкции. Если в try создана ошибка, тогда блок else будет немедленно выполнен вместо остальной части блока try, и ошибка будет подана с без распечатки.

В этом случае, если lob имеет больше бит, чем pkt имеет «физические поля», тогда распаковка вызовет ошибку. Если это произойдет, время выполнения Specman перейдет к блоку else и распечатает структуру данных lob вместо печати исходной ошибки unpack. Посмотрите в документах относительно того, что такое «физические поля» и как они используются. Это странная конструкция, которая специфически взаимодействует с поведением конструкций Specman's %, pack и unpack. Физические поля pkt будут объявлены с модификатором %, предшествующим «физическим полям» pkt.

+0

спасибо за объяснение, которое действительно помогло моему делу – smashash

1

try и if аналогичны, если if выполняет истинный блок, когда условие истинно , а также оно выполняет ложь. Аналогичным образом попробуйте также, если в истинном блоке есть ошибка, и он переключается на else block.