I disagree. If you've mis-typed a macro inside a string that it is still an error, isn't it? And you would want it trapped wouldn't you?

$-variables in strings don't throw an exception if they are undeclared and changing this behaviour will break existing scripts so probably will have to remain as-is for backwards compatibility. I don't think that because this is how $-variables work it is a good reason to apply the same behaviour to macros.

Example:
Code:
$sMyLogFile="\\$sServer\$sShare\@LOGONID.txt"



Personally I think it is much better for this to error rather than populate the string and continue.

To turn the question on it's head, why would you not want a mistyped macro to throw an exception?