In reply to Walt Smith.

Hi Walt, thank you for your comment. Your way of handling it is better than nothing, but there are, however, some caveats.
First, while your solution works for most cases it is hardly simpler than x = divide(n,d);
Second, d>. does not guarantee that d is not missing. For example, if d=.y (special missing value) then your if condition d>. will miss this since .y is greater than . (ordinary missing value). If you submit the following code

data _null_;
n=5;
d=.y;
if d>. and d ^= 0 then x = n/d;
put x=;
run;

you still will end up with the following message in your SAS log:

x=.
NOTE: Missing values were generated as a result of performing an operation on missing values.
Each place is given by: (Number of times) at (Line):(Column).

This is the same as not having your if statement at all and just have x = n/d;

And third, using divide() function will not produce the above nasty-gram in SAS log even when the dividend is missing, instead it will quietly assign missing value to the result.