例如使用JDBC与DAO时, DAO接口中没有定义为抛出SQL异常, 但在实现的时候又不能把SQL异常给忽略掉, 而又不想去修改DAO接口, 这时可以捕捉到SQL异常, 然后取得其信息, 抛出一个运行时异常:
throw new RuntimeException(e.getMessage(), e);
SQL异常是编译时异常, 在编译的时候就进行判断, 而运行时异常在编译的时候不强制捕捉或者再次抛出, 只有在运行时出现异常的时候才会抛出, 是可选择性捕捉的, 如Hibernate就使用了运行时异常.