throw when illegal

The example should throw when `illegal` instead of setting a string. The entire example could use some refactoring, but this should be good enough for now.

Was not sure if we should continue with skipping all but first test so I went ahead and left them all un-skipped. I can change that if we aren't ready to go down that road yet.