为什么规范只记录绑定方法抛出的异常?
我希望在这种情况下组件不会激活。
如何处理从绑定方法抛出的异常以确保正确设置组件?
答案 0 :(得分:2)
仅仅因为服务引用的绑定引发异常并不一定意味着组件无法激活。由于组件知道异常(毕竟,它是抛出它的绑定方法),因此它可以以这样的方式实现,即它仍然可以被激活,例如,通过回退默认值或提供有限的服务。
绑定方法不应该抛出任何异常,这与可能导致激活失败的激活方法不同。
<强>参考:强>
OSGi 112.5.7:“如果绑定方法抛出异常,SCR必须使用日志服务记录包含异常的错误消息(如果存在),但组件配置的激活不会失败。”