Click here to Skip to main content
Click here to Skip to main content
Technical Blog

Getting Exact Location of Exception in C# Code

, 2 Feb 2014 CPOL
Rate this:
Please Sign up or sign in to vote.
Post is about locating exact location of the Exception in the code. There is always problem for the developer to locate exact location from where Exception raised, because of that it difficult for the developer what actually went wrong. Most of the time problem occurs when there is too many librarie

Introduction

Post is about locating exact location of the Exception in the code. There is always problem for the developer to locate exact location from where Exception raised, because of that it difficult for the developer what actually went wrong. Most of the time problem occurs when there is too many libraries referenced i.e. used in project.

To understand let’s consider below example: In following example application is divided in three layers

  1. Font end - Layer though which user interact with application and Displays data to end user of application.
  2. Business -Layer which is having business logic, code to call datalayer and the info classes which transport between font and data layer.
  3. Data - Layer which interact with database and supply data to business layer.

Front Layer code 

class Program
    {
        //Program p = new Program();

        public int i = 10;
        public static void Main(string[] args)
        {
            try
            {
                (new BusinessEmployee()).GetEmployeeList();
            }
            catch (Exception ex)
            {
                global::System.Windows.Forms.MessageBox.Show(ex.Message);
            }

        }
    }

As you see in above code Font layer calling “GetEmployeeList” method to get list of all employee.

BusinessLayer code 

    public class BusinessEmployee
    {
        private readonly DataEmployee dataEmployee;

        public BusinessEmployee()
        {
            dataEmployee = new DataEmployee();
        }

        //Business layer class for employee 
        public  void GetEmployeeList()
        {
            dataEmployee.GetEmployeeList();
        }
    }
In this layer Business class calling DataLayer to get employee list from the database.

DataLayer code

    public class DataEmployee
    {
        //Data layer class for employee 
        public  void GetEmployeeList()
        {
            throw new Exception("Not able to fetch employee");
        }
    }
This layer return employee list, but for the example its returning exception.

Now if you run above code by putting it into respected layer, then when exception thrown by the actual code debugger break execution in the front layer code. Below image shows same thing.

So it becomes difficult for the developer what went wrong if there is actual complex code is there.

Solution

In Visual studio there is option as given in below image that allows to break debugging at the point i.e. at the code from where exception is coming.

Once you clicked on menu option it will open up dialog box where you can mark tick on “Common Language Runtime Exception” as in below image and click ok.

Now if you run same code than debugger will stop at exact location from where exception is coming, you can also see below image. 

So breaking at exact location from where error is coming you can find out which part is actually causing problem and help to resolve error easily.

Conclusion

Visual studio option to locate exception also very helpful when there is multiple threads doing operation and throws exception. Also locate exceptions dialog provide other option that is also help full when you are using JavaScript, com component etc. that you can try by yourself.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Pranay Rana
Software Developer (Senior) GMind Solusion
India India

Microsoft C# MVP (12-13)

 
Hey, I am Pranay Rana, working as a ITA in MNC. Web development in Asp.Net with C# and MS sql server are the experience tools that I have had for the past 5.5 years now.
 
For me def. of programming is : Programming is something that you do once and that get used by multiple for many years
 

You can visit my blog

StackOverFlow - http://stackoverflow.com/users/314488/pranay
My CV :- http://careers.stackoverflow.com/pranayamr
 
Awards:


Follow on   Twitter   LinkedIn

Comments and Discussions

 
GeneralMy vote of 4 PinprofessionalPratik Bhuva9-Feb-14 22:03 
GeneralRe: My vote of 4 PinmemberPranay Rana9-Feb-14 23:18 
GeneralMy vote of 5 PinmemberJCahyaatnttearjee4-Feb-14 1:38 
GeneralRe: My vote of 5 PinmemberPranay Rana4-Feb-14 1:44 
GeneralRe: My vote of 5 PinmemberJCahyaatnttearjee4-Feb-14 1:46 
GeneralMy vote of 5 PinmemberMike Meinz29-Jan-14 7:03 
GeneralRe: My vote of 5 PinmemberPranay Rana30-Jan-14 0:52 
GeneralMy vote of 4 PinmemberKlaus Luedenscheidt28-Jan-14 19:02 
GeneralRe: My vote of 4 PinmemberPranay Rana28-Jan-14 22:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web01 | 2.8.141022.2 | Last Updated 3 Feb 2014
Article Copyright 2014 by Pranay Rana
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid