public boolean isPossibleExBuilder ( int excReg ) throws ClassNotFoundException { String sig = getSigConstantOperand ( ) ; String returnSig = SignatureUtils . getReturnSignature ( sig ) ; if ( returnSig . startsWith ( Values . SIG_QUALIFIED_CLASS_PREFIX ) ) { returnSig = SignatureUtils . trimSignature ( returnSig ) ; JavaClass retCls = Repository . lookupClass ( returnSig ) ; if ( retCls . instanceOf ( throwableClass ) ) { int numParms = SignatureUtils . getNumParameters ( sig ) ; if ( stack . getStackDepth ( ) >= numParms ) { for ( int p = 0 ; p < numParms ; p ++ ) { OpcodeStack . Item item = stack . getStackItem ( p ) ; if ( item . getRegisterNumber ( ) == excReg ) { return true ; } } } } } return false ; }
returns whether the method called might be a method that builds an exception using the original exception . It does so by looking to see if the method returns an exception and if one of the parameters is the original exception