private function _try() {
    $node = new TryCatchNode();
    $this->mustMatch(T_TRY, $node);
    $node->addChild($this->innerStatementBlock(), 'try');
    $catch_node = new CatchNode();
    while ($this->tryMatch(T_CATCH, $catch_node)) {
      $this->mustMatch('(', $catch_node, 'openParen');
      $catch_node->addChild($this->name(), 'exceptionType');
      $this->mustMatch(T_VARIABLE, $catch_node, 'variable');
      $this->mustMatch(')', $catch_node, 'closeParen', FALSE, TRUE);
      $catch_node->addChild($this->innerStatementBlock(), 'body');
      $node->addChild($catch_node);
      $catch_node = new CatchNode();
    }
    if ($this->tryMatch(T_FINALLY, $node)) {
      $node->addChild($this->innerStatementBlock(), 'finally');
    }
    return $node;
  }