Invalid AMQP exceptions handling

According to AMQP Specification, section 4.8 - "Error Handling" on some kind or exception as they declared in section 1.2. - "AMQP­ defined Constants" we have to close channel or even connection (with all of it channels) and mark those object as disconnected to prevent their further usage in case of try-catch application survive.

In case of re-declaring already existent exchange with different params we doesn't properly close channel, which may lead in unexpected behavior when same channel being used.