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

  • SEARCH
  • Home
  • 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 3403664
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T05:17:19+00:00 2026-05-18T05:17:19+00:00

I rethrow an exception with throw;, but the stacktrace is incorrect: static void Main(string[]

  • 0

I rethrow an exception with “throw;”, but the stacktrace is incorrect:

static void Main(string[] args) {
    try {
        try {
            throw new Exception("Test"); //Line 12
        }
        catch (Exception ex) {
            throw; //Line 15
        }
    }
    catch (Exception ex) {
        System.Diagnostics.Debug.Write(ex.ToString());
    }
    Console.ReadKey();
}

The right stacktrace should be:

System.Exception: Test
   at ConsoleApplication1.Program.Main(String[] args) in Program.cs:Line 12

But I get:

System.Exception: Test
   at ConsoleApplication1.Program.Main(String[] args) in Program.cs:Line 15

But line 15 is the position of the “throw;”. I have tested this with .NET 3.5.

  • 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-18T05:17:19+00:00Added an answer on May 18, 2026 at 5:17 am

    Throwing twice in the same method is probably a special case – I’ve not been able to create a stack trace where different lines in the same method follow each other. As the word says, a “stack trace” shows you the stack frames that an exception traversed. And there is only one stack frame per method call!

    If you throw from another method, throw; will not remove the entry for Foo(), as expected:

      static void Main(string[] args)
      {
         try
         {
            Rethrower();
         }
         catch (Exception ex)
         {
            Console.Write(ex.ToString());
         }
         Console.ReadKey();
      }
    
      static void Rethrower()
      {
         try
         {
            Foo();
         }
         catch (Exception ex)
         {
            throw;
         }
    
      }
    
      static void Foo()
      {
         throw new Exception("Test"); 
      }
    

    If you modify Rethrower() and replace throw; by throw ex;, the Foo() entry in the stack trace disappears. Again, that’s the expected behavior.

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

Sidebar

Related Questions

I've dealt with instances where I would throw/rethrow an exception knowing that the code
how can I re-throw an exception caught by catch(...) block?
Duplicate of: In C#, how can I rethrow InnerException without losing stack trace? I
I want to disable the stack trace getting generated when an exception is thrown.
Upon including <boost/thread.hpp> I get this exception: First-chance exception at 0x7c812afb in CSF.exe: Microsoft
Doctrine_Core::createTablesFromModels() is failing with the following error: Fatal error: Uncaught exception 'Doctrine_Connection_Mysql_Exception' with message
I'm trying to get going with a new WCF service. The service was working
I've confirmed this same behavior in VS2005, so I was wrong to call it
I am writing a library that I would like to be portable. Thus, it
I'm running my app on shared hosting. When I run the latest changes on

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.