1. C# / Говнокод #5450

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    public SqlTransaction GetSqlTransaction(string pMd5)
    {
    	if (_connection.State == ConnectionState.Closed)
    	{
    		try
    		{
    			_connection.Open();
    		}
    		catch (SqlException ex)
    		{
    			throw new ApplicationException("Unable to connect to database (" + _connection.DataSource + "/" + _connection.Database + "). Please contact your local IT administrator.", ex);
    		}
    	}
    	else
    	{
    		try
    		{
    			throw new ApplicationException("COUCOU");
    		}
    		catch (ApplicationException ex)
    		{
    			System.Diagnostics.Trace.WriteLine(ex.StackTrace);
    		}
    		sqlTransaction = _connection.BeginTransaction();
    	}
    	return sqlTransaction;
    }

    Код из очередного проекта. А надежда то на коннект все-равно остается! :)

    Запостил: _Ru55_, 31 Января 2011

    Комментарии (22) RSS

    • странная игра с эксепшонами, но код не сфейлит ) не?
      Ответить
      • Да фейлит по чу-чуть :)
        Если бы не фейлил, я бы его вообще не нашел :)
        Ответить
        • транзакция начнется только если соединение открыто? или может, не закрыто, еще не означает готово? :)
          Ответить
          • В элсе он попадает с "Ку-ку" и вдобавок возвращает null :)
            Ответить
            • ну "куку" должно же ловиться и логироваться, это наверное можно вообще игнорировать
              а вот обьявления sqlTransaction нет, это поле?
              Ответить
              • Да, локальная переменная.
                Ответить
                • как у вас в шарпе все запущено. Ява бы это даже скомпилировать не дала, сказала бы - у вас переменная не обьявлена и не инициализирована
                  Ответить
                  • VisualBasic же...
                    Ответить
                  • Люра, ей-бо, уныло... Такие наезды на шарп не делают тебе чести.

                    Таки да, в шарпе это тоже не скомпилилось бы. Ну ясно же, что это не локальная переменная данного метода, а поле класса.
                    Ответить
                  • Тут все нормально. А Жава и Шарп - почти тоже самое.
                    Вверху объявлено так, для особо интерисующихся:
                    private SqlTransaction sqlTransaction;
                    Ответить
                • поле имелось в виду?
                  Ответить
            • бессмысленная и беспощадная трата ресурсов на вызов и проглатывание исключения (кстати, достатоно дорогое удовольствие)
              зачем?? проверить работоспособность рантайма?
              Ответить
              • кажется, код в состоянии дебага, и дорогое удовольствие кидает в лог "куку, я здесь!" - думаю, опосля будет убрано
                Ответить
                • На самом деле он в таком состоянии работал уже года два, наверное :)
                  Потом че-то изменилось и вот тебе на... Ку-ку! И теперь он здесь :)
                  Ответить
    • Их разговор я, конечно, слышал, и душа моя улетела в пятки. Коварный план, который я воплотил в жизнь и всё это время поддерживал, рухнул.
      Ответить

    Добавить комментарий