java - 为什么用 "throws Exception"声明 OSGI BundleActivator 方法?

标签 java exception osgi throws

OSGI 的startstop 方法BundleActivatorthrows Exception 声明。同时,Joshua Bloch 在他的书 Effective Java,第二版,第 62 项中说

never declare a method "throws Exception"

那么在 BundleActivator 中这是一个糟糕的设计决策,还是这种普遍性在这种情况下是合理的,为什么?

最佳答案

请注意,您可以在不使用任何throws 子句的情况下声明startstop 方法。 (或者您可以使用任何 java.lang.Exception 子类声明这些方法。)

另一方面,一个具体的例子,例如

void start(BundleContext context) throws BundleActivatorException

方法不会改变太多。它只会让实现者捕获他们的异常并将其包裹在 BundleActivatorException 中重新抛出。由于每个异常都会使包激活变得毫无意义,因此这个 try-catch block 实际上是不必要的,因此抛出 java.lang.Exception 更容易。

关于java - 为什么用 "throws Exception"声明 OSGI BundleActivator 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9311890/

相关文章:

java - 无法理解 Final Block 的行为

java - 改进java代码以避免堆内存不足异常

java - OSGi 容器中的 Camel : Apply InterceptStrategy to all camel contexts

Spring + Felix war = FileNotFoundException

java - RCP 应用程序中 bundle 之间的类的运行时可见性

java - 为什么 JProfiler 不在 Maven 测试分析中显示我的类/方法?

java - 使用 keycloak-admin-client 创建用户期间出现 403

java - java 中 Thread.sleep() 的替代方案

android - 在edittext中没有输入任何内容时如何避免异常?

java - 线程中的异常 "main"java.lang.IllegalArgumentException : illegal component position