DATA Step, Macro, Functions and more

custom error creation in SAS macro

Accepted Solution Solved
Reply
Regular Contributor
Posts: 234
Accepted Solution

custom error creation in SAS macro

 

Hello,

I don't see the difference in error created  in log by two %put statement below. Log check will detect both of them.

 

%macro m (a);
	%if &a ^= chk %then
		%do;
			%put %str(ER)ROR: has occured;
			%put ERROR: has occured;
		%end;
%mend m;

%m(bak)

Accepted Solutions
Solution
‎06-07-2017 09:14 PM
Super User
Posts: 5,082

Re: custom error creation in SAS macro

Even if there is no difference (and there could be, with quoting characters being added to the message), there is an important practical difference.  

 

When you search the log later looking for ERROR, it would be nice for the search to be clean if there were no errors.  If the macro contains the word ERROR, the search will find it.  You will spend a small amount of mental energy determining that you can ignore it, because it was only part of a macro definition.  But if the macro contains %STR(ER)ROR instead, the search finds nothing unless an error actually occurred.

View solution in original post


All Replies
Solution
‎06-07-2017 09:14 PM
Super User
Posts: 5,082

Re: custom error creation in SAS macro

Even if there is no difference (and there could be, with quoting characters being added to the message), there is an important practical difference.  

 

When you search the log later looking for ERROR, it would be nice for the search to be clean if there were no errors.  If the macro contains the word ERROR, the search will find it.  You will spend a small amount of mental energy determining that you can ignore it, because it was only part of a macro definition.  But if the macro contains %STR(ER)ROR instead, the search finds nothing unless an error actually occurred.

Trusted Advisor
Posts: 1,128

Re: custom error creation in SAS macro

It is based on the keywords the log identifies the words. For example ERROR, WARNING

In your case the %str is a compilation macro function used to mask the special characters. However there are no special characters in the text you mentioned. So the %str is ignored and the entire text is read as keyword that is recognized by the log.
Thanks,
Jag
☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

Discussion stats
  • 2 replies
  • 101 views
  • 1 like
  • 3 in conversation