Obsługa wyjątków w C#

0

Przypadkiem natrafiłem na pewien dziwny problem. Otóż:

 try
            {
                SqlConnection dbconnection = new SqlConnection("database=data;"+"connection timeout=10");
            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message);
            }
           try
            {
                dbconnection.open();
            }
           catch(Exception e)
             {
              MessageBox.Show(e.Message);
             }

Ten kod nie działa, bo VS pokazuje mi, że "dbconnection doesn't exist in this context".
Ale jak zrobię:

 try
            {
                SqlConnection dbconnection = new SqlConnection("database=data;"+"connection timeout=10");
                dbconnection.Open();
            }
            catch(Exception e)
            {
                MessageBox.Show(e.Message);
            }

To wtedy wychodzi ok, kompiluje się bez problemu. O co chodzi?

dodanie znaczników <code class="csharp"> - Furious Programming

1

Masz ten obiekt w pierwszym bloku try i nie widzisz go w drugim. Zresztą zobacz, że drugie rozwiązanie jest sensowne, bo jeśli nie utworzysz obiektu to po co tam w ogóle wchodzić i próbować wywołać jakąś metodę?

0

Trochę to jest bez sensu, bo zbyt często używając wyjątków napotykam się na ten problem. Chyba że ja czegoś nie rozumiem albo za często tych wyjątków używam?

1 użytkowników online, w tym zalogowanych: 0, gości: 1