virtual const char* what() const throw() { }
AFAIK it\'s a function that will return a constant pointer to a mutable char. The rest I am not sure.
It actually returns a mutable pointer to a constant character block.
The rest is already explained by others.