FAQ > 金融建模 > 建模问题 > 平台使用

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),则该行命令之后选择的是不禁用的状态(也就是报错模式)。
    反之亦然。