class_docstr: Visitor to remove ast nodes
  
  :param symbols: set of symbol that are removable.
class_docstr_tok: ["Visitor","to","remove","ast","nodes",":","param","symbols",":","set","of","symbol","that","are","removable","."]
code: def visitTryExcept(self, node):
      self.reduce(node.body)
      self.reduce(node.orelse)
  
      len_body = len(node.body)
  
      if len_body == 0:
          node.body.append(Pass(node))
  
      for hndlr in node.handlers:
          self.reduce(hndlr.body)
          if len(hndlr.body) == 0:
              hndlr.body.append(Pass(hndlr))
  
      if len_body == 0:
          node.handlers = [
              _ast.ExceptHandler(
                  type=None,
                  name=None,
                  body=[Pass(node)],
                  lineno=node.lineno,
                  col_offset=node.col_offset,
              )
          ]
  
      return len_body == 0 and len(node.orelse) == 0
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import _ast
  from ...asttools import Visitor, visit_children
label_desc: Use image node_id 16 for calling the PruneVisitor obj's underlying member method code with example usage: obj.visitTryExcept(node) and returns: unknown