KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
We know that the exception class has two derived classes: logic_error and runtime_error . logic_error has four derived classes: domain_error , invalid_argument , length_error and out_of_range . runtime_error has three derived classes: range_error , overflow_error and underflow_error . While some of them are self-explanatory, like overflow_error and underflow_error , some are not that clear, especially range_error , both MSDN and cplusplus just say "to report a range error", which is close to saying nothing, how it is different out_of_range and domain_error ??? Another question is when I throw an exception, which one should I choose? For example, In reverse_string(char* s) , which exception to throw when s is NULL? In float calc_ellipse_area(float a, float b) , which to throw when a or b is <=0? Which to throw when a == b (strictly speaking, circle is not an ellipse!)? Finally, practically speaking, does it really matter if I throw an exception which is not correctly categorized?
Tags (comma-separated)
Save Edits
Cancel