1

I have an exception occurred when the Database connection failed in a Class. The problem is how do I notify my Main Window that this exception is caught and show a message box to notify my user?

Thanks

Tom Blodget
  • 20,260
  • 3
  • 39
  • 72
Cagaya Coper
  • 75
  • 1
  • 12

2 Answers2

1

Use the Try ... Catch clause like this:

try
{
    // The code that could generate an exception
}
catch(Exception ex)
{
   MessageBox.Show("Error: " ex.Message);
}

Or if you're using SQL-Server connection, use it like this:

try
{
    // The code that could generate an exception
}
catch(SqlException ex)
{
   MessageBox.Show("SQL Error: " ex.Message);
}
Richard
  • 568
  • 1
  • 6
  • 23
  • Thanks. I may have not make my question clearly. I mean this exception is occurred in one class, but the message box should be show in an other windows class. So how do I communicate and show this error? – Cagaya Coper Mar 13 '16 at 03:51
  • Make your method returns a String then only you use it like this: `return ex.Message;` – Richard Mar 13 '16 at 03:55
0

Thanks. I may have not make my question clearly. I mean this exception is occurred in one class, but the message box should be show in an other windows class. So how do I communicate and show this error?

From your clarification in one of the comments:

So if you have class TestClass.cs with method Test in it.

public void Test()
{
    //if you want to throw an exception defined by your business logic
    if(someCondition == false)
       throw CustomException();

    //if you have exception in the code
    int a = 5;
    int b =0;

    //here you will be thrown an exception can't divide by 0.
    int c = a/b;
}

Your winform Button Click or whatever

public void Button_Click1(object sender, EventArgs e)
{
     try
     {
         TestClass cl = new TestClass();
         cl.Test();
     }
     catch(CustomException custEx)
     {
         //this for your Bussines logic exception
         //write your message
     }
     catch(DivideByZeroException div)
     {
          //this for divide by zero exception
          //write message
     }
     //you can catch all other exception like this but I don't advice you to do that
     catch(Exception ex)
     {
         //for this to working properly, this catch should be under all of others(last priority)
     }

}
mybirthname
  • 17,949
  • 3
  • 31
  • 55