java - 为什么异常有时需要用 try/catch 包围?

标签 java exception

我有一个静态工厂类,如果在调用之前没有进行初始化,它会抛出异常。我不明白为什么 Eclipse 对我大喊大叫,因为我在工厂中抛出了异常(它要求我在 try/catch 中包围抛出异常),但在另一个类中我抛出了 UnsupportedOperationException ,eclipse就可以了。

是否有我不知道的违反规则?

我的静态调用(问题根源):

public static Object createObject() {
    if (CONTEXT == null)
        throw new InstantiationException("Factory not inited.");
    // ...
}

编辑:我意识到这可能更适合作为单例而不是静态类,但问题仍然存在。

最佳答案

您需要查看已检查异常和未检查异常之间的区别。

http://docs.oracle.com/javase/tutorial/essential/exceptions/catchOrDeclare.html

如果抛出的异常是从 RuntimeException 派生的,则它是 Unchecked 的,不需要显式声明/处理。所有其他人都必须如此。

关于java - 为什么异常有时需要用 try/catch 包围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404748/

相关文章:

Java - 带有ExecutorService的多线程爬虫

java - 如何使用log4j的同一个记录器将不同的信息写入两个不同的文件?

exception - JavaFX 禁用 TreeView 折叠

java.io.StreamCorruptedException : invalid stream header: FAD08000

c++ - SimpleBlobDetector 异常

java - 在基于图 block 的 map 中查找多边形的内部坐标

java - 通过 shell 传递空格分隔值需要比预期更多的参数

java - 如何级联持久化 @ManyToOne 关系(TransientPropertyValueException)?

c++ - 如何安全地处理容器类中的异常/异常?

android - 如何捕捉 Amazon AWS 错误 Android