Specman-e使用try {};

时间:2012-01-07 08:50:31

标签: try-catch unpack specman

我想知道Specman中关键字try的用途,特别是它在下面给出的代码段中的用法:

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

2 个答案:

答案 0 :(得分:1)

尝试,如果相似,那么if在条件为真时执行true块 否则它会执行false。 同样,如果真正的块中有错误,它也会尝试切换到else块。

答案 1 :(得分:0)

tryelse是Specman的exception handling构造。如果在try block中创建了错误,则立即执行else块而不是try块的其余部分,并使用抑制错误没有打印输出

在这种情况下,如果lob的位数多于pkt的“物理字段”,则解包将产生错误。如果发生这种情况,Specman运行时将跳转到else块并打印出lob数据结构,而不是打印原始unpack错误。在文档中查看“物理领域”是什么以及如何使用它们。它们是一个奇怪的构造,专门与Specman的%packunpack构造的行为相互作用。 pkt的物理字段将使用%的“物理字段”之前的pkt修饰符进行声明。