The member err_msg
is already initialized by the initializer list.
my_exception(const char *msg) : err_msg(msg) {};
// here ^^^^^^^^^^^^
So nothing to do for the contructor.
Sidenote: There is a some discussion about not using std::string in exceptions. Just google for it or see here.