Q:禁用无市场数据抛出异常(pn_noraisenodata())的功能说明
简述
天软新一代客户端(NG)在2025-1-23日新增功能【禁用无市场数据异常】功能,解决可以禁止市场数据类函数当股票不存在、缺乏时间序列数据或者实时行情等引发的主动异常。
功能说明:
不禁用的情况下(系统默认状态):
在默认情况下(即不禁用,系统参数pn_noraisenodata()设置为0时),在天软服务器中执行提取错误证券代码的数据(如close())时,会引发如"没有指定股票"等报错,从而导致程序中断。
如运行return spec(close(),"abc"); 报错如下:
禁用情况下
设置为禁用后(系统参数pn_noraisenodata()设置为1),即可避免抛出上述异常,而直接返回0或nil等,使程序继续向下运行。
可通过两种方式进行设置:
方式一:在执行窗口中勾选【禁用无数据异常】选项
方式二:程序中设置系统参数pn_noraisenodata()为1
具体操作如下:
方式一:运行时勾选【禁用无数据异常】选项运行
方式二:设置系统参数
函数说明可参考:FAQ:
pn_NoRaiseNoData
setsysparam(pn_noraisenodata(),1);
return spec(close(),"abc");
特别说明:
执行窗口中勾选【禁用无数据异常】选项,即表示当前运行环境(在程序运行前)该系统参数pn_noraisenodata()的初始值为1。
即执行窗口中选择的系统参数先运行,而后进入程序运行过程中。
因此,当窗口中勾选,而程序中也有设置pn_noraisenodata()时,以运行时pn_noraisenodata()的状态为准。
比如,当窗口中勾选【禁用无数据异常】选项时,而程序中设置了setsysparam(pn_noraisenodata(),0),则该行命令之后选择的是不禁用的状态(也就是报错模式)。
反之亦然。