在使用代码连接到数据库时,它要求在try catch块中包围它。
连接
mycs=DriverManager.getConnection("jdbc:mysql://localhost:3306/javatest [root on Default schema]");
答案 0 :(得分:0)
B / c驱动程序正在尝试建立连接,如果失败(由于可能的原因),则抛出异常。例如,MySQL服务器没有运行,javatest不存在......
请注意try-catch
并非处理异常的唯一方法。
答案 1 :(得分:0)
DriverManager.getConnection
会抛出 SQLException
,这是经过检查的异常,需要处理或抛出。
此外,正确处理或传播异常始终是一个好习惯。这不仅限于数据库连接,而是在其他地方。
答案 2 :(得分:0)
如果你转到方法的声明,你会看到它被声明为:
public static Connection getConnection(String url)
throws SQLException {
...
}
SQLException是一个已检查的异常,意味着当您调用抛出已检查Exception的方法时,您必须通过try-catch处理它,或者通过使用此异常声明调用方法来传播它。
所以必须有一个叫做unchecked异常的东西,对吧?是的,它们包括RuntimeException的所有子类。
当一个方法抛出一个已检查的异常时,它希望调用者知道某些东西有可能出错,你不能忽略它。
答案 3 :(得分:0)
基本上,任何已检查的异常都需要在方法签名中处理(选项1)或指定(选项2)(查看here在捕获或指定要求)。
现在,特定于DriverManager
的{{1}}方法,它会抛出一个已检查的异常(即getConnection
),您可以在下方查找API(或{{3} })。所以你可以使用try-catch块来处理它或指定它(在方法签名中使用SQLException
cluase)。
public static Connection getConnection(String url) 抛出SQLException
尝试建立与给定数据库URL的连接。该 DriverManager尝试从该组中选择适当的驱动程序 注册JDBC驱动程序。
返回: 与URL的连接
<强>抛出强>: SQLException - 如果发生数据库访问错误或网址为空
注意:如果您选择选项(2)(即指定它),那么您的方法的调用者需要处理它(即,再次处理它或指定它)