Exception handling in C++ is a well-unschooled topic if you observe initial stages of the learning curve. Here, we will see some intricacies, from where & why you should not throw an exception along with some newer features introduced in Modern C++ on exception handling with example.com. We will also see the performance cost of using an exception by a quick benchmark code. Finally, we close the article with Best practices & some CPP Core Guidelines on exceptions handling. The exception object is an lvalue argument when initializing catch clause parameter.