C++ catch blocks - catch exception by value or reference?
c++, exception
Solution
The standard practice for exceptions in C++ is ...
Throw by value, catch by reference
Catching by value is problematic in the face of inheritance hierarchies. Suppose for your example that there is another type `MyException` which inherits from `CustomException` and overrides items like an error code. If a `MyException` type was thrown your catch block would cause it to be converted to a `CustomException` instance which would cause the error code to change.
Problem
Possible Duplicate: catch exception by pointer in C++ I always catch exceptions by value. e.g ``` try{ ... } catch(CustomException e){ ... } ``` But I came across some code that instead had `catch(CustomException &e)` instead. Is this a)fine b)wrong c)a grey area?