Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6154943
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T20:20:48+00:00 2026-05-23T20:20:48+00:00

I have a silly question. I read this article about std::exception http://www.cplusplus.com/doc/tutorial/exceptions/ On catch

  • 0

I have a silly question. I read this article about std::exception http://www.cplusplus.com/doc/tutorial/exceptions/

On catch (exception& e), it says:

We have placed a handler that catches exception objects by reference (notice the ampersand & after the type), therefore this catches also classes derived from exception, like our myex object of class myexception.

Does this mean that by using “&” you can also catch exception of the parent class? I thought & is predefined in std::exception because it’s better to pass e (std::exception) as reference than object.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T20:20:49+00:00Added an answer on May 23, 2026 at 8:20 pm

    The reason for using & with exceptions is not so much polymorphism as avoiding slicing. If you were to not use &, C++ would attempt to copy the thrown exception into a newly created std::exception, potentially losing information in the process. Example:

    #include <stdexcept>
    #include <iostream>
    
    class my_exception : public std::exception {
      virtual const char *what() const throw() {
        return "Hello, world!";
      }
    };
    
    int main() {
      try {
        throw my_exception();
      } catch (std::exception e) {
        std::cout << e.what() << std::endl;
      }
      return 0;
    }
    

    This will print the default message for std::exception (in my case, St9exception) rather than Hello, world!, because the original exception object was lost by slicing. If we change that to an &:

    #include <stdexcept>
    #include <iostream>
    
    class my_exception : public std::exception {
      virtual const char *what() const throw() {
        return "Hello, world!";
      }
    };
    
    int main() {
      try {
        throw my_exception();
      } catch (std::exception &e) {
        std::cout << e.what() << std::endl;
      }
      return 0;
    }
    

    Now we do see Hello, world!.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This might be a silly question but I am still learning. I have read
This seems to be a silly question but, I have to read some data
This might be a bit of a silly question but; If I have two
This may seem like a silly question. We have a streaming server and the
Apologies in advance, because I suspect this may be a silly question. I have
This is silly, but I haven't found this information. If you have names of
This might be a silly question, but: Suppose an expression depends only on literals,
This is probably a silly question. I am experimenting with python doctest, and I
I know this question may sound silly, but I am learning (at least trying)
This is probably a silly question but i haven't been able to find the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.