Included the charcode.  Honestly if this raises we're probably in deeper trouble anyways; also it looks a bit like a pain to make error handling work with our home-baked throwing and catching exceptions so I'm going to pass :/