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
public class DroppedException extends PreorderVisitor implements Detector
-
-
Field Summary
Fields Modifier and Type Field Description private BugAccumulatorbugAccumulatorprivate BugReporterbugReporterprivate static intCATCH(package private) java.util.Set<java.lang.String>causes(package private) java.util.Set<java.lang.String>checkedCausesprivate ClassContextclassContextprivate static intCLOSE_PARENprivate static booleanDEBUGprivate static booleanLOOK_IN_SOURCE_TO_FIND_COMMENTED_CATCH_BLOCKSprivate static intMAX_LINESThe number of lines that we'll scan to look at the source for a catch block.private static intNUM_CONTEXT_LINESMaximum number of lines we look backwards to find the "catch" keyword.private static intOPEN_BRACEprivate static intOPEN_PARENprivate static intSTART-
Fields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description DroppedException(BugReporter bugReporter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleancatchBlockHasComment(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 intgetNextExecutableLineNumber(org.apache.bcel.classfile.LineNumberTable linenumbers, int PC)private intgetUnsignedShort(byte[] a, int i)(package private) booleanisChecked(java.lang.String c)voidreport()This method is called after all classes to be visited.voidvisit(org.apache.bcel.classfile.Code obj)voidvisitClassContext(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, visitRecord, visitRecordComponent, visitStackMapType
-
-
-
-
Field Detail
-
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
java.util.Set<java.lang.String> causes
-
checkedCauses
java.util.Set<java.lang.String> checkedCauses
-
bugReporter
private final BugReporter bugReporter
-
bugAccumulator
private final BugAccumulator bugAccumulator
-
classContext
private ClassContext classContext
-
START
private static final int START
- See Also:
- Constant Field Values
-
CATCH
private static final int CATCH
- See Also:
- Constant Field Values
-
OPEN_PAREN
private static final int OPEN_PAREN
- See Also:
- Constant Field Values
-
CLOSE_PAREN
private static final int CLOSE_PAREN
- See Also:
- Constant Field Values
-
OPEN_BRACE
private static final int OPEN_BRACE
- See Also:
- Constant Field Values
-
NUM_CONTEXT_LINES
private static final int NUM_CONTEXT_LINES
Maximum 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:
- Constant Field Values
-
MAX_LINES
private static final int MAX_LINES
The number of lines that we'll scan to look at the source for a catch block.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DroppedException
public DroppedException(BugReporter bugReporter)
-
-
Method Detail
-
visitClassContext
public void visitClassContext(ClassContext classContext)
Description copied from interface:DetectorVisit the ClassContext for a class which should be analyzed for instances of bug patterns.- Specified by:
visitClassContextin interfaceDetector- Parameters:
classContext- the ClassContext
-
report
public void report()
Description copied from interface:DetectorThis 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
boolean isChecked(java.lang.String c)
-
getUnsignedShort
private int getUnsignedShort(byte[] a, int i)
-
visit
public void visit(org.apache.bcel.classfile.Code obj)
- Overrides:
visitin classBetterVisitor
-
getNextExecutableLineNumber
private int getNextExecutableLineNumber(org.apache.bcel.classfile.LineNumberTable linenumbers, int PC)
-
catchBlockHasComment
private 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.- Returns:
- true if there is a comment in the catch block, false if not (or if we can't tell)
-
-