org.eclipse.jdt.internal.compiler.ast
类 TryStatement

java.lang.Object
  继承者 org.eclipse.jdt.internal.compiler.ast.ASTNode
      继承者 org.eclipse.jdt.internal.compiler.ast.Statement
          继承者 org.eclipse.jdt.internal.compiler.ast.SubRoutineStatement
              继承者 org.eclipse.jdt.internal.compiler.ast.TryStatement
所有已实现的接口:
TypeConstants, TypeIds

public class TryStatement
extends SubRoutineStatement


字段摘要
 LocalVariableBinding anyExceptionVariable
           
 Argument[] catchArguments
           
 Block[] catchBlocks
           
 Block finallyBlock
           
 LocalDeclaration[] resources
           
 LocalVariableBinding returnAddressVariable
           
 LocalVariableBinding secretReturnValue
           
 UnconditionalFlowInfo subRoutineInits
           
 Block tryBlock
           
 
从类 org.eclipse.jdt.internal.compiler.ast.Statement 继承的字段
COMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINED
 
从类 org.eclipse.jdt.internal.compiler.ast.ASTNode 继承的字段
Bit1, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15, Bit16, Bit17, Bit18, Bit19, Bit2, Bit20, Bit21, Bit22, Bit23, Bit24, Bit25, Bit26, Bit27, Bit28, Bit29, Bit3, Bit30, Bit31, Bit32, Bit32L, Bit33L, Bit34L, Bit35L, Bit36L, Bit37L, Bit38L, Bit39L, Bit4, Bit40L, Bit41L, Bit42L, Bit43L, Bit44L, Bit45L, Bit46L, Bit47L, Bit48L, Bit49L, Bit5, Bit50L, Bit51L, Bit52L, Bit53L, Bit54L, Bit55L, Bit56L, Bit57L, Bit58L, Bit59L, Bit6, Bit60L, Bit61L, Bit62L, Bit63L, Bit64L, Bit7, Bit8, Bit9, bits, BlockExit, CanBeStatic, ContainsAssertion, DepthMASK, DepthSHIFT, DidResolve, DisableUnnecessaryCastCheck, DiscardEnclosingInstance, DocumentedFallthrough, Empty, ErrorInSignature, FirstAssignmentToLocal, GenerateCheckcast, HasAbstractMethods, HasAllMethodBodies, HasBeenGenerated, HasBeenResolved, HasLocalType, HasSyntaxErrors, IgnoreNoEffectAssignCheck, IgnoreRawTypeCheck, InsideExpressionStatement, InsideJavadoc, INVOCATION_ARGUMENT_OK, INVOCATION_ARGUMENT_UNCHECKED, INVOCATION_ARGUMENT_WILDCARD, IsAnnotationDefaultValue, IsAnonymousType, IsAnySubRoutineEscaping, IsArgument, IsCompoundAssigned, IsDefaultConstructor, IsDiamond, IsElseIfStatement, IsElseStatementUnreachable, IsImplicitThis, IsImplicitUnit, IsLocalDeclarationReachable, IsLocalType, IsMemberType, IsNonNull, IsReachable, IsRecovered, IsReturnedValue, IsSecondaryType, IsStrictlyAssigned, IsSubRoutineEscaping, IsSuperType, IsSynchronized, IsThenStatementUnreachable, IsTryBlockExiting, IsUnionType, IsUsefulEmptyStatement, IsVarArgs, LabelUsed, NeededScope, NeedFreeReturn, NeedReceiverGenericCast, OnDemand, OperatorMASK, OperatorSHIFT, OverridingMethodWithSupercall, ParenthesizedMASK, ParenthesizedSHIFT, ResolveJavadoc, RestrictiveFlagMASK, ReturnTypeIDMASK, sourceEnd, sourceStart, SuperAccess, ThenExit, Unchecked, UndocumentedEmptyBlock, UnnecessaryCast, UnsafeCast, Used
 
从接口 org.eclipse.jdt.internal.compiler.lookup.TypeConstants 继承的字段
ANNOTATION, ANNOTATION_PREFIX, ANNOTATION_SUFFIX, ANONYM_PREFIX, ANONYM_SUFFIX, BOOLEAN, BYTE, CHAR, CharArray_JAVA_IO_OBJECTINPUTSTREAM, CharArray_JAVA_IO_OBJECTOUTPUTSTREAM, CharArray_JAVA_IO_OBJECTSTREAMFIELD, CharArray_JAVA_LANG_ANNOTATION_ANNOTATION, CharArray_JAVA_LANG_ENUM, CharArray_JAVA_LANG_OBJECT, CLINIT, CLONE, CONSTRAINT_EQUAL, CONSTRAINT_EXTENDS, CONSTRAINT_SUPER, DOUBLE, EQUALS, FLOAT, GETCLASS, HASHCODE, INIT, INT, INVOKE, IO, JAVA, JAVA_IO, JAVA_IO_EXTERNALIZABLE, JAVA_IO_IOEXCEPTION, JAVA_IO_OBJECTINPUTSTREAM, JAVA_IO_OBJECTOUTPUTSTREAM, JAVA_IO_OBJECTSTREAMEXCEPTION, JAVA_IO_PRINTSTREAM, JAVA_IO_SERIALIZABLE, JAVA_LANG, JAVA_LANG_ANNOTATION_ANNOTATION, JAVA_LANG_ANNOTATION_DOCUMENTED, JAVA_LANG_ANNOTATION_ELEMENTTYPE, JAVA_LANG_ANNOTATION_INHERITED, JAVA_LANG_ANNOTATION_RETENTION, JAVA_LANG_ANNOTATION_RETENTIONPOLICY, JAVA_LANG_ANNOTATION_TARGET, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_AUTOCLOSEABLE, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLASSNOTFOUNDEXCEPTION, JAVA_LANG_CLONEABLE, JAVA_LANG_DEPRECATED, JAVA_LANG_DOUBLE, JAVA_LANG_ENUM, JAVA_LANG_ERROR, JAVA_LANG_EXCEPTION, JAVA_LANG_FLOAT, JAVA_LANG_ILLEGALARGUMENTEXCEPTION, JAVA_LANG_INTEGER, JAVA_LANG_INVOKE_METHODHANDLE_$_POLYMORPHICSIGNATURE, JAVA_LANG_INVOKE_METHODHANDLE_POLYMORPHICSIGNATURE, JAVA_LANG_ITERABLE, JAVA_LANG_LONG, JAVA_LANG_NOCLASSDEFERROR, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_REFLECT_CONSTRUCTOR, JAVA_LANG_REFLECT_FIELD, JAVA_LANG_REFLECT_METHOD, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SAFEVARARGS, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_STRINGBUFFER, JAVA_LANG_STRINGBUILDER, JAVA_LANG_SUPPRESSWARNINGS, JAVA_LANG_SYSTEM, JAVA_LANG_THROWABLE, JAVA_LANG_VOID, JAVA_UTIL_COLLECTION, JAVA_UTIL_ITERATOR, JAVAX_RMI_CORBA_STUB, LANG, LENGTH, LONG, MAIN, MISMATCH, NULL, OBJECT, OK, PACKAGE_INFO_NAME, READOBJECT, READRESOLVE, REFLECT, SERIALPERSISTENTFIELDS, SERIALVERSIONUID, SHORT, SYNTHETIC_ACCESS_METHOD_PREFIX, SYNTHETIC_ASSERT_DISABLED, SYNTHETIC_CLASS, SYNTHETIC_ENCLOSING_INSTANCE_PREFIX, SYNTHETIC_ENUM_CONSTANT_INITIALIZATION_METHOD_PREFIX, SYNTHETIC_ENUM_VALUES, SYNTHETIC_OUTER_LOCAL_PREFIX, SYNTHETIC_STATIC_FACTORY, SYNTHETIC_SWITCH_ENUM_TABLE, TYPE, UNCHECKED, UPPER_ANNOTATION_TYPE, UPPER_CLASS, UPPER_CONSTRUCTOR, UPPER_FIELD, UPPER_LOCAL_VARIABLE, UPPER_METHOD, UPPER_PACKAGE, UPPER_PARAMETER, UPPER_RUNTIME, UPPER_SOURCE, UTIL, VALUE, VALUEOF, VALUES, VOID, WILDCARD_CAPTURE, WILDCARD_CAPTURE_NAME_PREFIX, WILDCARD_CAPTURE_NAME_SUFFIX, WILDCARD_EXTENDS, WILDCARD_MINUS, WILDCARD_NAME, WILDCARD_PLUS, WILDCARD_STAR, WILDCARD_SUPER, WRITEOBJECT, WRITEREPLACE
 
从接口 org.eclipse.jdt.internal.compiler.lookup.TypeIds 继承的字段
Boolean2Boolean, Boolean2Int, Boolean2String, BOXING, Byte2Byte, Byte2Char, Byte2Double, Byte2Float, Byte2Int, Byte2Long, Byte2Short, Byte2String, Char2Byte, Char2Char, Char2Double, Char2Float, Char2Int, Char2Long, Char2Short, Char2String, COMPILE_TYPE_MASK, Double2Byte, Double2Char, Double2Double, Double2Float, Double2Int, Double2Long, Double2Short, Double2String, Float2Byte, Float2Char, Float2Double, Float2Float, Float2Int, Float2Long, Float2Short, Float2String, IMPLICIT_CONVERSION_MASK, Int2Byte, Int2Char, Int2Double, Int2Float, Int2Int, Int2Long, Int2Short, Int2String, Long2Byte, Long2Char, Long2Double, Long2Float, Long2Int, Long2Long, Long2Short, Long2String, NoId, Null2Null, Null2String, Object2boolean, Object2byte, Object2char, Object2double, Object2float, Object2int, Object2long, Object2Object, Object2short, Object2String, Short2Byte, Short2Char, Short2Double, Short2Float, Short2Int, Short2Long, Short2Short, Short2String, String2String, T_boolean, T_byte, T_char, T_double, T_float, T_int, T_JavaIoException, T_JavaIoExternalizable, T_JavaIoObjectStreamException, T_JavaIoPrintStream, T_JavaIoSerializable, T_JavaLangAnnotationAnnotation, T_JavaLangAnnotationDocumented, T_JavaLangAnnotationElementType, T_JavaLangAnnotationInherited, T_JavaLangAnnotationRetention, T_JavaLangAnnotationRetentionPolicy, T_JavaLangAnnotationTarget, T_JavaLangAssertionError, T_JavaLangAutoCloseable, T_JavaLangBoolean, T_JavaLangByte, T_JavaLangCharacter, T_JavaLangClass, T_JavaLangClassNotFoundException, T_JavaLangCloneable, T_JavaLangDeprecated, T_JavaLangDouble, T_JavaLangEnum, T_JavaLangError, T_JavaLangException, T_JavaLangFloat, T_JavaLangIllegalArgumentException, T_JavaLangInteger, T_JavaLangInvokeMethodHandlePolymorphicSignature, T_JavaLangIterable, T_JavaLangLong, T_JavaLangNoClassDefError, T_JavaLangObject, T_JavaLangOverride, T_JavaLangReflectConstructor, T_JavaLangReflectField, T_JavaLangReflectMethod, T_JavaLangRuntimeException, T_JavaLangSafeVarargs, T_JavaLangShort, T_JavaLangString, T_JavaLangStringBuffer, T_JavaLangStringBuilder, T_JavaLangSuppressWarnings, T_JavaLangSystem, T_JavaLangThrowable, T_JavaLangVoid, T_JavaUtilCollection, T_JavaUtilIterator, T_long, T_null, T_short, T_undefined, T_void, UNBOXING
 
构造方法摘要
TryStatement()
           
 
方法摘要
 FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo)
           
 ExceptionLabel enterAnyExceptionHandler(CodeStream codeStream)
           
 void enterDeclaredExceptionHandlers(CodeStream codeStream)
           
 void exitAnyExceptionHandler()
           
 void exitDeclaredExceptionHandlers(CodeStream codeStream)
           
 void generateCode(BlockScope currentScope, CodeStream codeStream)
          Try statement code generation with or without jsr bytecode use post 1.5 target level, cannot use jsr bytecode, must instead inline finally block returnAddress is only allocated if jsr is allowed
 boolean generateSubRoutineInvocation(BlockScope currentScope, CodeStream codeStream, Object targetLocation, int stateIndex, LocalVariableBinding secretLocal)
          Generate an invocation of a subroutine (e.g. jsr finally) in current context.
 boolean isSubRoutineEscaping()
           
 StringBuffer printStatement(int indent, StringBuffer output)
           
 void resolve(BlockScope upperScope)
           
 void traverse(ASTVisitor visitor, BlockScope blockScope)
           
protected  void verifyDuplicationAndOrder(int length, TypeBinding[] argumentTypes, boolean containsUnionTypes)
           
 
从类 org.eclipse.jdt.internal.compiler.ast.SubRoutineStatement 继承的方法
placeAllAnyExceptionHandler, reenterAllExceptionHandlers
 
从类 org.eclipse.jdt.internal.compiler.ast.Statement 继承的方法
branchChainTo, checkAgainstNullAnnotation, complainIfUnreachable, expectedType, generateArguments, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, print, resolveCase
 
从类 org.eclipse.jdt.internal.compiler.ast.ASTNode 继承的方法
checkInvocationArguments, concreteStatement, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, printAnnotations, printIndent, printModifiers, resolveAnnotations, resolveDeprecatedAnnotations, sourceEnd, sourceStart, toString
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

resources

public LocalDeclaration[] resources

tryBlock

public Block tryBlock

catchBlocks

public Block[] catchBlocks

catchArguments

public Argument[] catchArguments

finallyBlock

public Block finallyBlock

subRoutineInits

public UnconditionalFlowInfo subRoutineInits

anyExceptionVariable

public LocalVariableBinding anyExceptionVariable

returnAddressVariable

public LocalVariableBinding returnAddressVariable

secretReturnValue

public LocalVariableBinding secretReturnValue
构造方法详细信息

TryStatement

public TryStatement()
方法详细信息

analyseCode

public FlowInfo analyseCode(BlockScope currentScope,
                            FlowContext flowContext,
                            FlowInfo flowInfo)
指定者:
Statement 中的 analyseCode

enterAnyExceptionHandler

public ExceptionLabel enterAnyExceptionHandler(CodeStream codeStream)
覆盖:
SubRoutineStatement 中的 enterAnyExceptionHandler

enterDeclaredExceptionHandlers

public void enterDeclaredExceptionHandlers(CodeStream codeStream)
覆盖:
SubRoutineStatement 中的 enterDeclaredExceptionHandlers

exitAnyExceptionHandler

public void exitAnyExceptionHandler()
覆盖:
SubRoutineStatement 中的 exitAnyExceptionHandler

exitDeclaredExceptionHandlers

public void exitDeclaredExceptionHandlers(CodeStream codeStream)
覆盖:
SubRoutineStatement 中的 exitDeclaredExceptionHandlers

generateCode

public void generateCode(BlockScope currentScope,
                         CodeStream codeStream)
Try statement code generation with or without jsr bytecode use post 1.5 target level, cannot use jsr bytecode, must instead inline finally block returnAddress is only allocated if jsr is allowed

指定者:
Statement 中的 generateCode

generateSubRoutineInvocation

public boolean generateSubRoutineInvocation(BlockScope currentScope,
                                            CodeStream codeStream,
                                            Object targetLocation,
                                            int stateIndex,
                                            LocalVariableBinding secretLocal)
从类 SubRoutineStatement 复制的描述
Generate an invocation of a subroutine (e.g. jsr finally) in current context.

指定者:
SubRoutineStatement 中的 generateSubRoutineInvocation
返回:
boolean, true if the generated code will abrupt completion
另请参见:
SubRoutineStatement.generateSubRoutineInvocation(BlockScope, CodeStream, Object, int, LocalVariableBinding)

isSubRoutineEscaping

public boolean isSubRoutineEscaping()
指定者:
SubRoutineStatement 中的 isSubRoutineEscaping

printStatement

public StringBuffer printStatement(int indent,
                                   StringBuffer output)
指定者:
Statement 中的 printStatement

resolve

public void resolve(BlockScope upperScope)
指定者:
Statement 中的 resolve

traverse

public void traverse(ASTVisitor visitor,
                     BlockScope blockScope)
覆盖:
ASTNode 中的 traverse

verifyDuplicationAndOrder

protected void verifyDuplicationAndOrder(int length,
                                         TypeBinding[] argumentTypes,
                                         boolean containsUnionTypes)


Copyright © 2013. All Rights Reserved.