In reply to Quentin.

The only way to have that scenario cause an error would be to write out your own error in the macro. You could parse out the value in &SYSPBUFF and compare with the values in the NAME column from SASHELP.VMACRO. If a variable does not exist use %put ERROR: to write out your own error.