在SAS EG中引发错误

时间:2016-05-24 06:36:30

标签: sas raiserror

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

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

现在我刚刚导入了一个名为my error message的文件。这不是很好,因为它将文件未找到的消息附加到我想要显示的消息上。

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

1 个答案:

答案 0 :(得分:3)

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

%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;