Package edu.umd.cs.findbugs.detect
Class DroppedException
java.lang.Object
edu.umd.cs.findbugs.visitclass.BetterVisitor
edu.umd.cs.findbugs.visitclass.PreorderVisitor
edu.umd.cs.findbugs.detect.DroppedException
- All Implemented Interfaces:
Detector
,Priorities
,org.apache.bcel.classfile.Visitor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final BugAccumulator
private final BugReporter
private static final int
private ClassContext
private static final int
private static final boolean
private static final boolean
private static final int
The number of lines that we'll scan to look at the source for a catch block.private static final int
Maximum number of lines we look backwards to find the "catch" keyword.private static final int
private static final int
private static final int
Fields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
catchBlockHasComment
(SourceLineAnnotation srcLine) Analyze a class's source code to see if there is a comment (or other text) in a catch block we have marked as dropping an exception.private int
getNextExecutableLineNumber
(org.apache.bcel.classfile.LineNumberTable linenumbers, int PC) private int
getUnsignedShort
(byte[] a, int i) (package private) boolean
void
report()
This method is called after all classes to be visited.void
visit
(org.apache.bcel.classfile.Code obj) void
visitClassContext
(ClassContext classContext) Visit the ClassContext for a class which should be analyzed for instances of bug patterns.Methods inherited from class edu.umd.cs.findbugs.visitclass.PreorderVisitor
amVisitingMainMethod, asUnsignedByte, doVisitMethod, getClassDescriptor, getClassName, getCode, getConstantPool, getDottedClassName, getDottedFieldSig, getDottedMethodSig, getDottedSuperclassName, getField, getFieldDescriptor, getFieldIsStatic, getFieldName, getFieldSig, getFullyQualifiedFieldName, getFullyQualifiedMethodName, getMethod, getMethodDescriptor, getMethodName, getMethodSig, getMethodVisitOrder, getNumberArguments, getNumberMethodArguments, getPackageName, getSizeOfSurroundingTryBlock, getSizeOfSurroundingTryBlock, getSourceFile, getStringFromIndex, getSuperclassName, getSurroundingCaughtExceptions, getSurroundingCaughtExceptions, getSurroundingCaughtExceptionTypes, getSurroundingTryBlock, getSurroundingTryBlock, getThisClass, getXClass, getXField, getXMethod, hasInterestingClass, hasInterestingMethod, isVisitMethodsInCallOrder, setupVisitorForClass, setVisitMethodsInCallOrder, shouldVisit, toString, visitAfter, visitAfter, visitAnnotation, visitAnnotationDefault, visitAnnotationEntry, visitBootstrapMethods, visitCode, visitConstantInvokeDynamic, visitConstantMethodHandle, visitConstantMethodType, visitConstantModule, visitConstantPackage, visitConstantPool, visitEnclosingMethod, visitingField, visitingMethod, visitInnerClasses, visitJavaClass, visitLineNumberTable, visitLocalVariableTable, visitMethodParameters, visitParameterAnnotation, visitParameterAnnotationEntry, visitStackMap, visitStackMapEntry
Methods inherited from class edu.umd.cs.findbugs.visitclass.BetterVisitor
clone, report, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visitCodeException, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantLong, visitConstantMethodref, visitConstantNameAndType, visitConstantString, visitConstantUtf8, visitConstantValue, visitDeprecated, visitExceptionTable, visitField, visitInnerClass, visitLineNumber, visitLocalVariable, visitLocalVariableTypeTable, visitMethod, visitSignature, visitSourceFile, visitSynthetic, visitUnknown
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.bcel.classfile.Visitor
visitConstantDynamic, visitMethodParameter, visitModule, visitModuleExports, visitModuleMainClass, visitModuleOpens, visitModulePackages, visitModuleProvides, visitModuleRequires, visitNestHost, visitNestMembers, visitStackMapType
-
Field Details
-
DEBUG
private static final boolean DEBUG -
LOOK_IN_SOURCE_TO_FIND_COMMENTED_CATCH_BLOCKS
private static final boolean LOOK_IN_SOURCE_TO_FIND_COMMENTED_CATCH_BLOCKS -
causes
-
checkedCauses
-
bugReporter
-
bugAccumulator
-
classContext
-
START
private static final int START- See Also:
-
CATCH
private static final int CATCH- See Also:
-
OPEN_PAREN
private static final int OPEN_PAREN- See Also:
-
CLOSE_PAREN
private static final int CLOSE_PAREN- See Also:
-
OPEN_BRACE
private static final int OPEN_BRACE- See Also:
-
NUM_CONTEXT_LINES
private static final int NUM_CONTEXT_LINESMaximum number of lines we look backwards to find the "catch" keyword. Looking backwards is necessary when the indentation style puts the open brace on a different line from the catch clause.- See Also:
-
MAX_LINES
private static final int MAX_LINESThe number of lines that we'll scan to look at the source for a catch block.- See Also:
-
-
Constructor Details
-
DroppedException
-
-
Method Details
-
visitClassContext
Description copied from interface:Detector
Visit the ClassContext for a class which should be analyzed for instances of bug patterns.- Specified by:
visitClassContext
in interfaceDetector
- Parameters:
classContext
- the ClassContext
-
report
public void report()Description copied from interface:Detector
This method is called after all classes to be visited. It should be used by any detectors which accumulate information over all visited classes to generate results. -
isChecked
-
getUnsignedShort
private int getUnsignedShort(byte[] a, int i) -
visit
public void visit(org.apache.bcel.classfile.Code obj) - Overrides:
visit
in classBetterVisitor
-
getNextExecutableLineNumber
private int getNextExecutableLineNumber(org.apache.bcel.classfile.LineNumberTable linenumbers, int PC) -
catchBlockHasComment
Analyze a class's source code to see if there is a comment (or other text) in a catch block we have marked as dropping an exception.- Returns:
- true if there is a comment in the catch block, false if not (or if we can't tell)
-