我正在尝试连接到mysql数据库。我在建立连接时使用try catch。 我希望我能够知道捕获了什么异常,因此,我可以显示相应的错误消息。 例如,如果我传递错误的主机名,我应该显示错误的主机名。 一种方法是获取运行时异常类的类名。但嵌套异常就像这样抛出..
建立连接时出现了一些错误 databasecom.mysql.jdbc.CommunicationsException:通信链接 基础异常导致的失败: - BEGIN NESTED EXCEPTION - java.net.UnknownHostException消息: localhsost STACKTRACE:java.net.UnknownHostException:localhsost at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)at java.net.InetAddress $ 1.lookupAllHostAddr(InetAddress.java:867)at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1246) 在java.net.InetAddress.getAllByName0(InetAddress.java:1197)at java.net.InetAddress.getAllByName(InetAddress.java:1128)at java.net.InetAddress.getAllByName(InetAddress.java:1064)at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:246) 在com.mysql.jdbc.MysqlIO。(MysqlIO.java:271)at com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)at com.mysql.jdbc.Connection。(Connection.java:1555)at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 在java.sql.DriverManager.getConnection(DriverManager.java:620)at java.sql.DriverManager.getConnection(DriverManager.java:222)at accessMySQL.accessMySQL.createConnection(accessMySQL.java:24)at test.main(test.java:16) - END NESTED EXCEPTION - 发送到服务器的最后一个数据包是1毫秒 前。建立连接时出现问题。
现在我想知道类名UnknownHostException,所以我可以设置类似
的条件if(e.getClass().toString() == "UnknownHostException")
System.out.println("Exception caught while connection to database. Hostname appears to be incorrect");
请帮忙!! P.s,主机名中的拼写错误是为了生成异常
答案 0 :(得分:3)
试试这个:
if (e.getCause() instanceof UnknownHostException) {
// ...
}