organized by estimated utility
Thrown to indicate that a method has been passed an illegal or inappropriate argument.
Thrown to indicate that an index of some sort (such as to an array, to a string, or to a vector) is out of range.
Thrown when the requested mathematical operation is non-sensical or impossible.