想知道在以下情况下是否可能引发ClassNotFoundException

DriverManager.getConnection(...);


我知道从JDBC 4.0开始手动加载驱动程序Class.forName(drivers..)时可能会抛出该错误,因为类DriverManager会自动执行此工作,因此无需手动执行此操作。
我的问题是:自动加载驱动程序时,如果找不到正确的驱动程序,会抛出ClassNotFoundException吗?我在DriverManager的API中看到它仅引发SQLException,并且与ClassNotFoundException无关。

这是否意味着它不会抛出?
谢谢,

它的确是

最佳答案

不,它不能抛出ClassNotFoundException。使用JDBC4,如果未注册Driver,您将得到一个异常,指出该URL不存在已注册的驱动程序。就像是

Exception in thread "main" java.sql.SQLException: No suitable driver found for <your url>
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at ru.expbrain.flib.Main.main(Main.java:15)


DriverManager.getConnection(String)状态的Javadoc


  DriverManager尝试从
  已注册的JDBC驱动程序集。

关于java - ClassNotFoundException被抛出与DriverManger.getConnection?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18941440/

10-12 17:39