0
我想更改使用BCEL的方法。但我不知道如何更新Exception表。這裏的簡化代碼:BCEL更新例外表
ConstantPoolGen poolGen = classGen.getConstantPool();
InstructionList iList = new InstructionList(method.getCode().getCode());
MethodGen newMethodGen = new MethodGen(method, classGen.getClassName(), poolGen);
for (InstructionHandle handle : iList.getInstructionHandles().clone()) {
if (I_WANT_TO_WRAP_IT(handle)) {
iList.insert(handle, MAKE_WRAPPER(handle));
iList.delete(handle);
}
}
classGen.removeMethod(method);
newMethodGen.setMaxStack();
newMethodGen.setMaxLocals();
classGen.addMethod(newMethodGen.getMethod());
在此之後的字節碼適當修改,但異常表是導致ClassFormatError
因爲異常表指向不存在的PC
不變。任何想法如何處理這個?