抛出ClassNotFoundException的Class.ForName(“ com.microsoft.sqlserver.jdbc.SQLServerDriver”)

时间:2018-12-05 14:07:59

标签: java sql-server jdbc web-applications

当我尝试用Java代码定义SQLServer数据库的驱动程序时,出现ClassNotFoundException。

Image of code and error message.

任何人都可以澄清这可能是为什么,我见过类似的问题,但他们的答案似乎都无效。

谢谢。

2 个答案:

答案 0 :(得分:1)

那是编译错误。

调用Class.forName()时,该方法可能会抛出已检查的异常ClassNotFoundException。由于这是一个检查异常,因此您的代码必须在当前方法中处理它,或者在方法的throws子句中声明它。

我建议您阅读exceptions and exception handling上的Java教程课程,或将其标记为重复项的问题解答。

请注意,如果在运行应用程序时实际发生此异常,则意味着Class.forName无法加载您命名的JDBC驱动程序类。这通常意味着包含驱动程序类的JAR不在运行时类路径上。除非您的应用程序可以完全不与数据库进行对话(!)才能继续进行,否则这是一个例外,它将无法从中恢复。

答案 1 :(得分:0)

因此基本上,屏幕截图显示您必须抓住ClassNotFoundException

try {
   Class.forName("...");
} catch (ClassNotFoundException e) {
   // log exception here
}

或将其重新放入您的方法签名中

void doSmth() throws ClassNotFoundexception {
    ...
    Class.forName("...");
    ...
}