1. Ruby / Говнокод #5250

    −104

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    def query(sql)
    		begin
    			@mysql.query(sql)
    		rescue StandardError => err
    			@log.error("Mysql query: '#{sql}\n#{err}'") if @log.class == LoggerHandler
    		end
    	end

    Говнообертка. LoggerHandler - класс, наследующийся от Logger.
    Говнонюанс в том, что Logger.error возвращает true/false в зависимости от того была ли запись в лог успешной, что приводит потом к ошибкам вида NoMethodError: undefined method `each' for true:TrueClass

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

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

    • Вообще работа с исключениями во многих проектах - печаль.
      Из удобного инструмента исключения превращаются в чёрные дыры ошибок рантайма.
      Ответить

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