Попробуй поймай наконец

Мэйби, это просто для тебя, а для меня - нет. У меня есть этот код:

Private int InsertData()
{ 
  int rezultat = 0;
       try
       {
           if (sqlconn.State != ConnectionState.Open)
           {
               sqlconn.Open();
           }
           rezultat = (int)cmd.ExecuteScalar();

       }
       catch (Exception ex)
       {
           lblMesaje.Text = "Eroare: " + ex.Message.ToString();

       }
       finally
       {
           if (sqlconn.State != ConnectionState.Closed)
           {
               sqlconn.Close();
           }
       }

       return rezultat;
}

Просто для вставки новой записи в таблицу. Даже если при этом выдается ошибка "Указанное приведение недействительно". "Rezultat=(целое)cmd.ExecuteScalar();" - код выполняется, и строка вставляется в базу данных, и выполнение продолжается.

Почему это продолжается? Мэйби, я не понимаю, наконец, попробуй поймать Smile |:)

Спасибо!

1 ответ

Решение

В вашем коде вы явно ловите Exception. Вот почему исполнение продолжается. Если вы хотите остановить выполнение, если какое-либо исключение было перехвачено, вам нужно вызвать исключение. Бросить новое исключение (ex.getMessage());

Но это не лучшая практика. Старайтесь отлавливать только объявленные исключения, а не класс исключений высокого уровня.

Другие вопросы по тегам