might worth adding more description here, for those who can't remember the exception codes :)