0
BCEL을 사용하여 메소드를 변경하려고합니다. 하지만 예외 테이블을 업데이트하는 방법을 모르겠습니다. 여기에 단순화 된 것 코드 :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());
이 바이트 코드가 올바르게 수정하지만 예외 테이블이 PC
을 존재하지 않는에 ClassFormatError
때문에 예외 테이블 포인트 리드가 변경되지 후. 이 문제를 어떻게 처리 할 생각입니까?