I like the idea of catching the known issue earlier, but I wonder if there's something more explicit we could say about the "correct" format?  I'm not sure that, if I were a user and encountered this error message, that it would be immediately intuitive to me how to fix it.

Also, I have a personal distaste for raising String objects as exceptions.  I realize that this isn't really specific to this pull request because we're doing the same thing in several other places in this file, so maybe it should be handled elsewhere... but I wonder if things would still work OK if we raised at least a Puppet::Error here instead of just a string.