Wyjątki w C# przy tworzeniu połączenia z bazą MySQL

0

Witajcie! Mam takie pytanie, jak zrobić odpowiednie wyjątki dla tych dwóch różnych sytuacji:

  1. Użytkownik podaje niepoprawne dane.
  2. Baza danych jest wyłączona.

Wiem, że kod powinien wyglądać mniej więcej tak:

try
{
   otwórz połączenie();

  Jeżeli wywala błąd wyłączonej bazy - idź do catch nr 1,
  Jeżeli wywala błąd złych danych - idź do catch nr 2
}
catch(ex1){}
catch(ex2){}

Z góry dzięki za pomoc :)

1

Możesz zrobić tak:

try
{
    // jakieś instrukcje
}
catch(MySqlException ex)
{
    if(ex.ErrorCode == MySqlErrorCode.UnableToConnectToHost)
    {
        // jakieś instrukcje
    }
    if(ex.ErrorCode == MySqlErrorCode.AccessDenied)
    {
        // jakieś instrukcje
    }
}
0

Niestety nie działa, ze względu na to, że ex.ErrorCode ma zawsze taką samą wartość, bez związku na to co robię :)

error2.jpg

dodanie obrazka do treści posta - furious programming

1

Zamiast ex.ErrorCode wstaw ex.Number powinno zadziałać. No i switcha możesz dać, będzie lepiej się czytało.

try
{
    // jakieś instrukcje
}
catch(MySqlException ex)
{
     switch(ex.Number)
     {
         case (int)MySqlErrorCode.UnableToConnectToHost:
             // instrukcje
             break;
     }
}
0

Super wszystko śmiga tylko musiałem zrobić zamiast:

case (int)MySqlErrorCode.AccessDenied:blabla
-> case 0: blabla

Bo access danied zwraca wartość 1045. a kod mojego błędu w wypadku podania niepoprawnych danych to 0.

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