Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么规范只记录绑定方法抛出的异常?
我希望在这种情况下该组件不会激活。
应该如何处理绑定方法抛出的异常以确保组件设置正确?
仅仅因为服务引用的绑定抛出异常并不一定意味着组件不能被激活。由于组件知道异常(毕竟,它是抛出异常的绑定方法),它可以以仍然可以被激活的方式来实现,例如通过回退到默认值或通过提供有限的服务。
绑定方法无论如何都不应该抛出任何异常,这与可能导致激活失败的激活方法不同。
参考:
OSGi 112.5.7:“如果绑定方法抛出异常,SCR 必须使用日志服务记录包含异常的错误消息(如果存在),但组件配置的激活不会失败。”