title: Mocha flow control after assertion fails
body: <p>I think mocha stops running the current test case after assertion fails, like this</p>
  
  <pre><code>it('test', function(done) {
      a.should.equal(b);
      //if a is not equal to be, won't go here
      //do something
      done();
  }
  </code></pre>
  
  <p>I need to continue doing something after assertion fails, I tried to use try...catch, but there is no "else" for catch, so if I do</p>
  
  <pre><code>try {
      a.should.equal(b)
  } catch(e) {
      console.log(e)
      done(e)
  } finally {
      //do something
      done()
  }
  </code></pre>
  
  <p>this will call done() twice, so I have to add a flag,</p>
  
  <pre><code>var flag = true;
  try {
      a.should.equal(b)
  } catch(e) {
      console.log(e)
      flag = false
      done(e)
  } finally {
      //do something
      if(flag)
          done()
  }
  </code></pre>
  
  <p>I think this is so complicated, so I wonder if there is an easier way to do it?</p>