IDE = VS7 или 2002
Привет всем, у меня тут действительно странная проблема. Код не выполняется должным образом. Я запускаю это через отладчик, и он работает очень странно.
Я убедился, что виртуальный каталог использует ASP.NET 1.0.3705.
Код следует, и я объясняю, что отладчик показывает мне как шаги выполнения в комментариях:
try
{
objConnection.Open(); // STARTS HERE
objCommand.ExecuteNonQuery(); // DOES NOT THROW EXCEPTION
int c = 0; // THIS LINE IS EXECUTED
}
catch (SqlException sqle)
{
LogError(); // THIS LINE IS NOT EXECUTED
throw sqle; // THIS LINE IS EXECUTED AFTER THE int c = 0;
// sqle IS NULL
// EXCEPTION IS NOT CAUGHT AND
// EXECUTION CONTINUES IN FINALLY BLOCK
}
finally
{
// EXECUTES AS EXPECTED FROM HERE ON OUT,
// AS THOUGH THE throw sqle; DID NOT HAPPEN.
if (objConnection.State == ConnectionState.Open) objConnection.Close();
}
Кто-нибудь испытывал такое странное поведение раньше? Есть идеи как это исправить? Я могу сильно изменить метод, но я все еще хотел бы знать, почему это происходит.
Подозреваю, поскольку sqle имеет значение null, поэтому бросок не работает должным образом. Но почему мы прыгнули в этот блок кода в первую очередь?
Я перезагружал его несколько раз, сохранял и перестраивал, выполнял с помощью отладчика и несколько раз наблюдал за этим поведением.
Спасибо всем за помощь!
Всего наилучшего,
Graham