1) Abstain from using dynamic exception specifications. They are deprecated and are no good anyway.
2) Type of string literal (which you are throwing) is constchar*, not char*)
I cannot remember book dedicated solely to exception handling, but there is a whole section on error handling in C++ Coding Standards by Herb Sutter and Andrei Alexandrescu. Some other books by renowned C++ experts sometimes talks about some specific sides of error and exception handling.