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 907897
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T16:37:40+00:00 2026-05-15T16:37:40+00:00

I am creating a data access layer where I want to handle exceptions that

  • 0

I am creating a data access layer where I want to handle exceptions that should be catched by Business layer with clear idea of the source of exception.
I am doing something like this..

EDIT

private void OpenConnection()
        {
                if (ConnectionState.Closed == _connection.State)
                    _connection.Open();
        }

In the above given code i know an reason for exception. And want to throw it to be handled at BL to display message.

But I am using this function in DL only with some other line of codes.

protected DataTable GetDataTable(string Query)
 {
     DataTable dt =new DataTable();
     SqlCommand cmd = InitializeCommand(Query);

     SqlDataAdapter adp = new SqlDataAdapter(cmd);
     try
     {
         OpenConnection();
         adp.Fill(dt);
         CloseConnection(true);
         return dt;
     }
     catch (SqlException ex)
     { throw ex; }
     finally
     {
         adp.Dispose();
         cmd.Dispose();
     }
 }

Now if an exception occurs in OpenConnection() while trying to open the connection then the application crashes at the line throw ex in OpenConnection itself while I was expecting it to return exception.
How should I handle this issue.
Moreover extending my question in the second function GetDataTable if an exception occurs what kind of exception should be thrown with same details as occured at this point and how.
I only know this way but this is a wong way i think.

throw new ApplicationException(ex.message,ex.innerexception)

Edit

Suppose Connection to server losts or I am using wrong connection string. Now I use GetDataTable function from BL. Where will exception occur and where should I handle it ?
I want to know the problem that occured in DL. Considering BL dont know the code of DL

  • 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-15T16:37:41+00:00Added an answer on May 15, 2026 at 4:37 pm

    There are several things you can do.

    You can have different try blocks, and throw new exceptions according to where you had the problem:

     try
     {
         OpenConnection();
         adp.Fill(dt);
     }
     catch (SqlException ex)
     { throw new SqlException("Could not open/populate", ex); }
     finally
     {
         adp.Dispose();
         cmd.Dispose();
     }
    
     try
     {
         CloseConnection(true);
         return dt;
     }
     catch (SqlException ex)
     { throw new SqlException("Could not close connection", ex); }
     finally
     {
         adp.Dispose();
         cmd.Dispose();
     }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

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.