ItemEvents
在我的场景中),所有生成的方法的默认行为都是抛出
UnsupportedOperationException
(参见
com4j.tlbimp.EventInterfaceGenerator
类以获取详细信息)。
close
方法
项目事件
我的匿名类覆盖的类:
@DISPID(61444)
public void close(Holder<Boolean> cancel) {
throw new UnsupportedOperationException();
}
因此,当我的匿名类调用
super.close(cancel);
,父类抛出
不支持操作异常
,阻止执行到达我的
System.out.println("Closed");
真正地
就像这样:
mailItem.advise(
ItemEvents.class,
new ItemEvents() {
@Override
public void close(Holder<Boolean> cancel) {
System.out.println("Closed");
}
}
);
令我惊讶的是Com4J似乎
这个
不支持操作异常
完全从事件处理程序抛出,没有留下任何实际发生的迹象。我写这段代码是为了演示:
mailItem.advise(
ItemEvents.class,
new ItemEvents() {
@Override
public void close(Holder<Boolean> cancel) {
System.out.println("Getting ready to throw the exception...");
throw new RuntimeException("ERROR! ERROR!");
}
}
);
Getting ready to throw the exception...
然而,没有迹象表明
RuntimeException
曾经被扔过。