在Specman中的空字符串上转换运算符

时间:2017-03-10 03:51:47

标签: specman

我正在Specman E中开发一些RTL检查程序,并使用类型转换来处理命令行参数。

代码如下,

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

  do something;

};

命令行有一个选项SWITCH = 10。问题是如果没有错误的开关,测试将失败。

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

如何避免此错误?是否有方法为转换运算符赋予一些默认值,以便每当它处理null时它返回零而不是?当然,我可以先检查字符串是否为空,然后继续。但我想避免使用额外的一行,看看我是否可以使用as_a

感谢。

2 个答案:

答案 0 :(得分:1)

这是从字符串到数字的转换方式 - 如果它不是数字,则会出错。 您可以将其包装在try块中以捕获错误,但如果您确定唯一的其他可能性是空字符串(而不是任何其他非数字字符串),那么最好的解决方案就是检查字符串是否为空。

答案 1 :(得分:0)

我担心如果没有多余的话,你就无法解决这个问题。

.as_a()string对象的函数,但如果在命令行中未定义get_symbol()null将返回SWITCH字符串。< / p>