add public throw_error that a user can overload for her own error_code type