    # File lib/amalgalite/statement.rb, line 91
        def execute( *params )
          bind( *params )
          begin
            # save the error state at the beginning of the execution.  We only want to
            # reraise the error if it was raised during this execution.
            s_before = $!
            if block_given? then
              while row = next_row
                yield row
              end
            else
              all_rows
            end
          ensure
            s = $!
            begin
              reset_for_next_execute!
            rescue => e
            end
            raise s if s != s_before
          end
        end