想知道在以下情况下是否可能引发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)
状态的JavadocDriverManager尝试从
已注册的JDBC驱动程序集。
关于java - ClassNotFoundException被抛出与DriverManger.getConnection?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18941440/