Skip to main content

Difference Between Throw And Throw(Ex) In C#

C# provides the facility to handle exceptions using the try and catch block. There are two ways --  you can either use throw(ex) method or the simpler throw method, as below.

First Way 
  1. try  
  2. {  
  3. }  
  4. catch(Exception ex)  
  5. {  
  6.    throw;  
  7. }  
Second way
  1. try  
  2. {  
  3. }  
  4. catch(Exception ex)  
  5. {  
  6.    throw(ex);  
Now, the question arises -- which one is better?

Here is the screenshot of a simple program.

C# 
The Throw method throws the current exception only while the Throw(ex) method will reset your stack trace so the error will appear from the line where Throw(ex) is written. Since Throw does not reset the stack trace, you will get the information about the original exception. Throw (ex) gives the following Exception Message.
at ConsoleApp1.Program.Main(String[] args) in D:\INTW\Console\ConsoleApp1\ConsoleApp1\Program.cs:line 19

C# 

And, Throw sends this Exception Message.

at ConsoleApp1.Program.DevideByZero(Int32 i) in D:\INTW\Console\ConsoleApp1\ConsoleApp1\Program.cs:line 26

at ConsoleApp1.Program.Main(String[] args) in D:\INTW\Console\ConsoleApp1\ConsoleApp1\Program.cs:line 19

C# 

So, you can see in the above image, we have got full stack trace information where the actual exception is called at line 26 and again rethrown at line 19.

While in the first screenshot, you can see there is only information about line 19. It does not show a full-stack trace. So, I will recommend you to always use Throw method.

Comments

Popular posts from this blog

Top 10 ASP.NET Web API Interview Questions

What is ASP.NET Web API? ASP.NET Web API is a framework that simplifies building HTTP services for broader range of clients (including browsers as well as mobile devices) on top of .NET Framework. Using ASP.NET Web API, we can create non-SOAP based services like plain XML or JSON strings, etc. with many other advantages including: Create resource-oriented services using the full features of HTTP Exposing services to a variety of clients easily like browsers or mobile devices, etc. What are the Advantages of Using ASP.NET Web API? Using ASP.NET Web API has a number of advantages, but core of the advantages are: It works the HTTP way using standard HTTP verbs like  GET ,  POST ,  PUT ,  DELETE , etc. for all CRUD operations Complete support for routing Response generated in JSON or XML format using  MediaTypeFormatter It has the ability to be hosted in IIS as well as self-host outside of IIS Supports Model binding and Validation Support for OD...

Extension methods in C#

Consider the class C# 1 2 3 4 5 6 7 8 9 10 11 12 13          namespace ExtensionMethod      {          public class testClass {              public string sayHello ( ) {              return "Hello" ;            }        }      }     Invoke the above from your form using C# 1 2 3 4 5 6          testClass test = new testClass ( ) ;      MessageBox . Show ( test . sayHello ( ) ) ;     This will show “Hello” in message box. Consider the scenario where you don...

What is cookie? Advantages and disadvantages of cookies?

What is cookie? A cookie is a small piece of text file stored on user's computer in the form of name-value pair. Cookies are used by websites to keep track of visitors e.g. to keep user information like username etc. If any web application using cookies, Server send cookies and client browser will store it. The browser then returns the cookie to the server at the next time the page is requested. The most common example of using a cookie is to store User information, User preferences, Password Remember Option etc.It is also one of the common and mostly asked interview questions. Some facts about Cookie Here are a few facts to know about cookies: · Cookies are domain specific i.e. a domain cannot read or write to a cookie created by another domain. This is done by the browser for security purpose. · Cookies are browser specific. Each browser stores the cookies in a different location. The cookies are browser specific and so a cookie created in one browser(e.g in Google Chrome...