Tag: checked exceptions

将已检查的exception包装到Java中未经检查的exception中?

我在java中有这个工厂方法: public static Properties getConfigFactory() throws ClassNotFoundException, IOException { if (config == null) { InputStream in = Class.forName(PACKAGE_NAME).getResourceAsStream(CONFIG_PROP); config = new Properties(); config.load(in); } return config; } 我想将两个已检查的exception转换为未经检查的exception。 最好的方法是什么? 我应该捕获exception并使用捕获的exception作为内部exception抛出一个新的RuntimeException吗? 有没有更好的方法来做到这一点,或者我是否应该首先尝试这样做? 编辑: 只是为了澄清。 这些exception将是致命的,因为配置文件基本上是程序的操作,所有exception都将被捕获并记录在我的程序的顶层。 我的目的是避免不必要的抛出exception,将exception添加到调用我的工厂的每个方法的签名中。

运行时/已检查/未检查/错误/exception之间的差异

什么是运行时exception以及什么是选中/未选中的exception以及错误/exception之间的区别。为什么这么多类型? 相反,Java可能只是遵循一个简单的设计(只是尝试/捕获所有类型)来处理程序中的exception情况?

如何在调用Thread.sleep()时修复未处理exception的编译错误?

我是Java的新手,也是编程的新手(我知道直接进入Java可能并不是最好的主意。)而且无论我如何尝试在程序中添加暂停,我都会遇到错误。 我正在做一个简单的计数程序,并希望在每个数字之间添加一秒延迟,这是我到目前为止的代码: import java.lang.*; public class Counter { public static void main(String[]args) { int i; for (i = 0; i <= 10; i++) { Thread.sleep(1000); System.out.println(i); } System.out.println("You can count to ten."); } } 对Thread.sleep()的调用将无法编译。 javac编译器说,“未报告的exceptionInterruptedException;必须被捕获或声明被抛出”,Eclipse说,“未处理的exception类型InterruptedException”

已检查vs未经检查的exception

我研究过:然而,对于未经检查的exception,编译器不会强制客户端程序员捕获exception或在throws子句中声明它。 实际上,客户端程序员可能甚至不知道可能抛出exception。 例如,String的charAt()方法抛出StringIndexOutOfBoundsException 。 这是什么意思? 根据该代码,没有必要在代码中放置try catch块,但我已经看到编译器强制将代码放入try catch块。 我很困惑他们到底是什么?