I think we have to keep very generic exceptions here because value could be anything and throw mysterious exceptions if you call `str` or for that matter `atof` with it.