在 SAS EG 中引发错误

Raise error in SAS EG

我有一个 SAS EG 程序,它检查文件是否存在,如果存在则拒绝替换它。

发生这种情况时,我希望 SAS EG 显示该程序的错误并在日志中显示有意义的自定义错误消息。我希望错误消息看起来与人们习惯于在日志中看到的其他错误消息相同,以便他们注意它。

现在我刚刚导入了一个文件,其中包含我的错误消息的名称。这不是很好,因为它将找不到文件的消息附加到我要显示的消息中。

有什么方法可以声明有错误并提供错误消息以放入 LOG

SAS 日志使用一种非常简单的方法来更改文本颜色:显示在日志中的文本行中的第一个单词。您可以在 %putput 语句中重新创建 ERRORWARNINGNOTE 消息。

%put NOTE: This is a note;
%put WARNING: This is a warning;
%put ERROR: I AM ERROR;

例如,假设您希望在缺少特定值时显示错误。

data have;
    input var;
    datalines;
1
.
2
3
.
;
run;

%put NOTE: Now checking for missing values...;

data _null_;
    set have;

    if(missing(var) ) then 
       put 'ERROR: A missing value for "var" was found at observation ' _N_;
run;

您也可以使用宏来执行此操作,例如在某些检查步骤中创建标志,或使用 &syserr 自动宏变量。

%macro check;
    %let e  = 0;

    data _null_;
        set have;

        if(missing(var) ) then call symput('e', 1);
    run;

    %if(&e) %then %put ERROR: An error was found.;
%mend;