public Node createCatch(Node modifiers, Node type, Node varName, Node body) {
VariableDefinitionEntry varNameEntry = new VariableDefinitionEntry().astName(createIdentifierIfNeeded(varName, currentPos()));
if (varName != null) varNameEntry.setPosition(varName.getPosition());
VariableDefinition decl = new VariableDefinition().rawTypeReference(type).rawVariables().addToEnd(
varNameEntry);
if (type != null && varName != null) decl.setPosition(new Position(type.getPosition().getStart(), varName.getPosition().getEnd()));
if (modifiers != null) decl.astModifiers(createModifiersIfNeeded(modifiers, currentPos()));
return posify(new Catch().rawExceptionDeclaration(decl).rawBody(body));
}