Class TryStmt
java.lang.Object
com.github.javaparser.ast.Node
com.github.javaparser.ast.stmt.Statement
com.github.javaparser.ast.stmt.TryStmt
- All Implemented Interfaces:
NodeWithRange<Node>, NodeWithTokenRange<Node>, Observable, Visitable, HasParentNode<Node>, Cloneable
The try statement
Java 1.0-6
try {
// ...
} catch (IOException e) {
// ...
} finally {
// ...
}
In this code, "// do things" is the content of the tryBlock, there is one catch clause that catches IOException e,
and there is a finally block.
The catch and finally blocks are optional, but they should not be empty at the same time.
Java 7-8
try (InputStream i = new FileInputStream("file")) {
// ...
} catch (IOException|NullPointerException e) {
// ...
} finally {
// ...
}
Java 7 introduced two things:
- Resources can be specified after "try", but only variable declarations (VariableDeclarationExpr.)
- A single catch can catch multiple exception types. This uses the IntersectionType.
Java 9+
try (r) {
// ...
} catch (IOException|NullPointerException e) {
// ...
} finally {
// ...
}
Java 9 finishes resources: you can now refer to a resource that was declared somewhere else.
The following types are allowed:
- VariableDeclarationExpr: "X x = new X()" like in Java 7-8.
- NameExpr: "a".
- FieldAccessExpr: "x.y.z", "super.test" etc.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class Node
Node.BreadthFirstIterator, Node.DirectChildrenIterator, Node.ObserverRegistrationMode, Node.ParentsVisitor, Node.Parsedness, Node.PostOrderIterator, Node.PreOrderIterator, Node.TreeTraversal -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate NodeList<CatchClause> private BlockStmtprivate NodeList<Expression> private BlockStmtFields inherited from class Node
ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE, LINE_SEPARATOR_KEY, NODE_BY_BEGIN_POSITION, PHANTOM_KEY, prettyPrinterNoCommentsConfiguration, PRINTER_KEY, SYMBOL_RESOLVER_KEY -
Constructor Summary
ConstructorsConstructorDescriptionTryStmt()TryStmt(NodeList<Expression> resources, BlockStmt tryBlock, NodeList<CatchClause> catchClauses, BlockStmt finallyBlock) TryStmt(BlockStmt tryBlock, NodeList<CatchClause> catchClauses, BlockStmt finallyBlock) TryStmt(TokenRange tokenRange, NodeList<Expression> resources, BlockStmt tryBlock, NodeList<CatchClause> catchClauses, BlockStmt finallyBlock) This constructor is used by the parser and is considered private. -
Method Summary
Modifier and TypeMethodDescription<R,A> R accept(GenericVisitor<R, A> v, A arg) Accept method for visitor support.<A> voidaccept(VoidVisitor<A> v, A arg) Accept method for visitor support.clone()voidbooleanbooleanbooleansetCatchClauses(NodeList<CatchClause> catchClauses) setFinallyBlock(BlockStmt finallyBlock) setResources(NodeList<Expression> resources) setTryBlock(BlockStmt tryBlock) Methods inherited from class Statement
asAssertStmt, asBlockStmt, asBreakStmt, asContinueStmt, asDoStmt, asEmptyStmt, asExplicitConstructorInvocationStmt, asExpressionStmt, asForEachStmt, asForStmt, asIfStmt, asLabeledStmt, asLocalClassDeclarationStmt, asLocalRecordDeclarationStmt, asReturnStmt, asSwitchStmt, asSynchronizedStmt, asThrowStmt, asUnparsableStmt, asWhileStmt, asYieldStmt, ifAssertStmt, ifBlockStmt, ifBreakStmt, ifContinueStmt, ifDoStmt, ifEmptyStmt, ifExplicitConstructorInvocationStmt, ifExpressionStmt, ifForEachStmt, ifForStmt, ifIfStmt, ifLabeledStmt, ifLocalClassDeclarationStmt, ifLocalRecordDeclarationStmt, ifReturnStmt, ifSwitchStmt, ifSynchronizedStmt, ifThrowStmt, ifUnparsableStmt, ifWhileStmt, ifYieldStmt, isAssertStmt, isBlockStmt, isBreakStmt, isContinueStmt, isDoStmt, isEmptyStmt, isExplicitConstructorInvocationStmt, isExpressionStmt, isForEachStmt, isForStmt, isIfStmt, isLabeledStmt, isLocalClassDeclarationStmt, isLocalRecordDeclarationStmt, isReturnStmt, isSwitchStmt, isSynchronizedStmt, isThrowStmt, isUnparsableStmt, isWhileStmt, isYieldStmt, toAssertStmt, toBlockStmt, toBreakStmt, toContinueStmt, toDoStmt, toEmptyStmt, toExplicitConstructorInvocationStmt, toExpressionStmt, toForEachStmt, toForStmt, toIfStmt, toLabeledStmt, toLocalClassDeclarationStmt, toLocalRecordDeclarationStmt, toReturnStmt, toSwitchStmt, toSynchronizedStmt, toThrowStmt, toUnparsableStmt, toWhileStmt, toYieldStmtMethods inherited from class Node
addOrphanComment, containsData, createDefaultPrinter, createDefaultPrinter, customInitialization, equals, findAll, findAll, findAll, findByRange, findCompilationUnit, findData, findFirst, findFirst, findFirst, findRootNode, getAllContainedComments, getChildNodes, getChildNodesByType, getComment, getData, getDataKeys, getDefaultPrinterConfiguration, getLineEndingStyle, getLineEndingStyleOrDefault, getNodesByType, getOrphanComments, getParentNode, getParentNodeForChildren, getParsed, getPrinter, getPrinter, getRange, getSymbolResolver, getTokenRange, hashCode, hasScope, isAncestorOf, isPhantom, isRegistered, notifyPropertyChange, register, register, registerForSubtree, remove, removeComment, removeData, removeForced, removeOrphanComment, replace, setAsParentNodeOf, setAsParentNodeOf, setBlockComment, setComment, setData, setLineComment, setParentNode, setParsed, setRange, setTokenRange, stream, stream, toString, toString, tryAddImportToParentCompilationUnit, unregister, walk, walk, walkMethods inherited from interface HasParentNode
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOfMethods inherited from interface NodeWithRange
containsWithin, containsWithinRange, getBegin, getEnd, hasRange
-
Field Details
-
resources
-
tryBlock
-
catchClauses
-
finallyBlock
-
-
Constructor Details
-
TryStmt
public TryStmt() -
TryStmt
-
TryStmt
public TryStmt(NodeList<Expression> resources, BlockStmt tryBlock, NodeList<CatchClause> catchClauses, BlockStmt finallyBlock) -
TryStmt
public TryStmt(TokenRange tokenRange, NodeList<Expression> resources, BlockStmt tryBlock, NodeList<CatchClause> catchClauses, BlockStmt finallyBlock) This constructor is used by the parser and is considered private.
-
-
Method Details
-
accept
Description copied from interface:VisitableAccept method for visitor support.- Type Parameters:
R- the type of the return value of the visitorA- the type the user argument passed to the visitor- Parameters:
v- the visitor implementationarg- the argument passed to the visitor (of type A)- Returns:
- the result of the visit (of type R)
-
accept
Description copied from interface:VisitableAccept method for visitor support.- Type Parameters:
A- the type the argument passed for the visitor- Parameters:
v- the visitor implementationarg- any value relevant for the visitor (of type A)
-
getCatchClauses
-
getFinallyBlock
-
getTryBlock
-
getResources
-
setCatchClauses
-
setFinallyBlock
-
setTryBlock
-
setResources
-
remove
-
removeFinallyBlock
-
clone
-
getMetaModel
- Overrides:
getMetaModelin classStatement- Returns:
- get JavaParser specific node introspection information.
-
replace
-
isTryStmt
-
asTryStmt
-
ifTryStmt
-
toTryStmt
-