服务追踪器 |如果出现异常,是否应该在 addingService 方法中释放服务?
ServiceTracker | Should we release service in addingService method in case of exception?
我创建了一个 ServiceTracker,其中 ServiceTrackerCustomizer 为空,并覆盖了 addingService 和 removedService 方法。
考虑使用此代码片段添加服务方法。
public T addingService(ServiceReference<T> reference) {
T service = super.addingService(reference);
try {
// some code which may throw exception.
} catch (Exception ex) {
// Let's not track if exception occurred.
service = null;
this.context.ungetService(reference);
}
return service;
}
那么,是否可以在异常情况下急于释放服务?或者我们可以省略它,OSGi 框架将负责稍后发布服务?
请指教
您应该取消问题中显示的服务。
我创建了一个 ServiceTracker,其中 ServiceTrackerCustomizer 为空,并覆盖了 addingService 和 removedService 方法。
考虑使用此代码片段添加服务方法。
public T addingService(ServiceReference<T> reference) {
T service = super.addingService(reference);
try {
// some code which may throw exception.
} catch (Exception ex) {
// Let's not track if exception occurred.
service = null;
this.context.ungetService(reference);
}
return service;
}
那么,是否可以在异常情况下急于释放服务?或者我们可以省略它,OSGi 框架将负责稍后发布服务?
请指教
您应该取消问题中显示的服务。