throwList.add(new ThrownException(signature, getPC()));
throwList.add(new ExceptionThrown(signature, getPC()));
	public void sawOpcode(int seen) {		try {			switch (seen) {			case ATHROW:				if (stack.getStackDepth() > 0) {					OpcodeStack.Item item = stack.getStackItem(0);					String signature = item.getSignature();					if (signature != null && signature.length() > 0) {						if (signature.startsWith("L"))							signature = SignatureConverter.convert(signature);						else							signature = signature.replace('/', '.');						throwList.add(new ThrownException(signature, getPC()));					}				}				break;			case INVOKEVIRTUAL:			case INVOKESPECIAL:			case INVOKESTATIC:				String className = getDottedClassConstantOperand();				try {					if (!className.startsWith("[")) {						JavaClass clazz = Repository.lookupClass(className);						Method[] methods = clazz.getMethods();						for (Method method : methods) {							if (method.getName().equals(getNameConstantOperand())									&& method.getSignature().equals(getSigConstantOperand())) {								ExceptionTable et = method.getExceptionTable();								if (et != null) {									String[] names = et.getExceptionNames();									for (String name : names)										throwList.add(new ThrownException(name, getPC()));								}								break;							}						}					}				} catch (ClassNotFoundException e) {					bugReporter.reportMissingClass(e);				}				break;			default:				break;			}		} finally {			stack.sawOpcode(this, seen);		}	}