Package com.github.javaparser.ast.stmt
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
public final class TryStmt extends Statement
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.
- Author:
- Julio Vilmar Gesser
- See Also:
CatchClause
,IntersectionType
,FieldAccessExpr
,NameExpr
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.github.javaparser.ast.Node
Node.BreadthFirstIterator, Node.DirectChildrenIterator, Node.ObserverRegistrationMode, Node.ParentsVisitor, Node.Parsedness, Node.PostOrderIterator, Node.PreOrderIterator, Node.TreeTraversal
-
-
Field Summary
-
Fields inherited from class com.github.javaparser.ast.Node
ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE, NODE_BY_BEGIN_POSITION, prettyPrinterNoCommentsConfiguration, SYMBOL_RESOLVER_KEY
-
-
Constructor Summary
Constructors Constructor Description TryStmt()
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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <R,A>
Raccept(GenericVisitor<R,A> v, A arg)
Accept method for visitor support.<A> void
accept(VoidVisitor<A> v, A arg)
Accept method for visitor support.TryStmt
asTryStmt()
TryStmt
clone()
NodeList<CatchClause>
getCatchClauses()
Optional<BlockStmt>
getFinallyBlock()
TryStmtMetaModel
getMetaModel()
NodeList<Expression>
getResources()
BlockStmt
getTryBlock()
void
ifTryStmt(Consumer<TryStmt> action)
boolean
isTryStmt()
boolean
remove(Node node)
TryStmt
removeFinallyBlock()
TryStmt
removeTryBlock()
boolean
replace(Node node, Node replacementNode)
TryStmt
setCatchClauses(NodeList<CatchClause> catchClauses)
TryStmt
setFinallyBlock(BlockStmt finallyBlock)
TryStmt
setResources(NodeList<Expression> resources)
TryStmt
setTryBlock(BlockStmt tryBlock)
Optional<TryStmt>
toTryStmt()
-
Methods inherited from class com.github.javaparser.ast.stmt.Statement
asAssertStmt, asBlockStmt, asBreakStmt, asContinueStmt, asDoStmt, asEmptyStmt, asExplicitConstructorInvocationStmt, asExpressionStmt, asForeachStmt, asForEachStmt, asForStmt, asIfStmt, asLabeledStmt, asLocalClassDeclarationStmt, asReturnStmt, asSwitchEntryStmt, asSwitchStmt, asSynchronizedStmt, asThrowStmt, asUnparsableStmt, asWhileStmt, ifAssertStmt, ifBlockStmt, ifBreakStmt, ifContinueStmt, ifDoStmt, ifEmptyStmt, ifExplicitConstructorInvocationStmt, ifExpressionStmt, ifForeachStmt, ifForEachStmt, ifForStmt, ifIfStmt, ifLabeledStmt, ifLocalClassDeclarationStmt, ifReturnStmt, ifSwitchEntryStmt, ifSwitchStmt, ifSynchronizedStmt, ifThrowStmt, ifUnparsableStmt, ifWhileStmt, isAssertStmt, isBlockStmt, isBreakStmt, isContinueStmt, isDoStmt, isEmptyStmt, isExplicitConstructorInvocationStmt, isExpressionStmt, isForeachStmt, isForEachStmt, isForStmt, isIfStmt, isLabeledStmt, isLocalClassDeclarationStmt, isReturnStmt, isSwitchEntryStmt, isSwitchStmt, isSynchronizedStmt, isThrowStmt, isUnparsableStmt, isWhileStmt, toAssertStmt, toBlockStmt, toBreakStmt, toContinueStmt, toDoStmt, toEmptyStmt, toExplicitConstructorInvocationStmt, toExpressionStmt, toForeachStmt, toForEachStmt, toForStmt, toIfStmt, toLabeledStmt, toLocalClassDeclarationStmt, toReturnStmt, toSwitchEntryStmt, toSwitchStmt, toSynchronizedStmt, toThrowStmt, toUnparsableStmt, toWhileStmt
-
Methods inherited from class com.github.javaparser.ast.Node
addOrphanComment, containsData, customInitialization, equals, findAll, findAll, findCompilationUnit, findFirst, findFirst, findFirst, findRootNode, getAllContainedComments, getChildNodes, getChildNodesByType, getComment, getData, getNodesByType, getOrphanComments, getParentNode, getParentNodeForChildren, getParsed, getRange, getSymbolResolver, getTokenRange, hasComment, hashCode, 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, walk
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.javaparser.HasParentNode
findAncestor, findAncestor, findParent, getAncestorOfType
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithRange
containsWithin, getBegin, getEnd, isPositionedAfter, isPositionedBefore
-
-
-
-
Constructor Detail
-
TryStmt
public TryStmt()
-
TryStmt
public TryStmt(BlockStmt tryBlock, NodeList<CatchClause> catchClauses, BlockStmt finallyBlock)
-
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 Detail
-
accept
public <R,A> R accept(GenericVisitor<R,A> v, A arg)
Description copied from interface:Visitable
Accept 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
public <A> void accept(VoidVisitor<A> v, A arg)
Description copied from interface:Visitable
Accept 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
public NodeList<CatchClause> getCatchClauses()
-
getTryBlock
public BlockStmt getTryBlock()
-
getResources
public NodeList<Expression> getResources()
-
setCatchClauses
public TryStmt setCatchClauses(NodeList<CatchClause> catchClauses)
-
setResources
public TryStmt setResources(NodeList<Expression> resources)
-
removeFinallyBlock
public TryStmt removeFinallyBlock()
-
removeTryBlock
public TryStmt removeTryBlock()
-
getMetaModel
public TryStmtMetaModel getMetaModel()
- Overrides:
getMetaModel
in classStatement
- Returns:
- get JavaParser specific node introspection information.
-
-