Jdbc 如何在java中处理嵌套异常?

Jdbc 如何在java中处理嵌套异常?,jdbc,Jdbc,我正在尝试连接到mysql数据库。建立连接时,我正在使用try-catch。 我希望我能够知道捕获了什么异常,以便显示适当的错误消息。 e、 g如果我传递了错误的主机名,我应该显示提供的错误主机名。 一种方法是获取运行时异常类的类名。但是嵌套异常是这样抛出的 建立与服务器的连接时出错 databasecom.mysql.jdbc.Communications异常:通信链接 由于基础异常而失败: --开始嵌套异常--java.net.UnknownHostException消息: localhso

我正在尝试连接到mysql数据库。建立连接时,我正在使用try-catch。 我希望我能够知道捕获了什么异常,以便显示适当的错误消息。 e、 g如果我传递了错误的主机名,我应该显示提供的错误主机名。 一种方法是获取运行时异常类的类名。但是嵌套异常是这样抛出的

建立与服务器的连接时出错 databasecom.mysql.jdbc.Communications异常:通信链接 由于基础异常而失败: --开始嵌套异常--java.net.UnknownHostException消息: localhsost STACKTRACE:java.net.UnknownHostException:localhsost位于 java.net.Inet6AddressImpl.lookupAllHostAddr(本机方法)位于 java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:867)位于 java.net.InetAddress.getAddressFromNameService(InetAddress.java:1246) 位于java.net.InetAddress.getAllByName0(InetAddress.java:1197) java.net.InetAddress.getAllByName(InetAddress.java:1128)位于 java.net.InetAddress.getAllByName(InetAddress.java:1064)位于 com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:246) 位于com.mysql.jdbc.MysqlIO.(MysqlIO.java:271) com.mysql.jdbc.Connection.createNewIO(Connection.java:2771)位于 com.mysql.jdbc.Connection.(Connection.java:1555)位于 com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 位于java.sql.DriverManager.getConnection(DriverManager.java:620) java.sql.DriverManager.getConnection(DriverManager.java:222)位于 accessMySQL.accessMySQL.createConnection(accessMySQL.java:24)位于 main(test.java:16) --结束嵌套异常--发送到服务器的最后一个数据包为1毫秒 以前建立联系的问题

现在我想知道类名UnknownHostException,这样我就可以设置如下条件

if(e.getClass().toString() == "UnknownHostException")  
System.out.println("Exception caught while connection to database. Hostname appears to be incorrect"); 
请帮忙!! 注意,主机名中的输入错误是故意产生异常的

请尝试以下操作:

if (e.getCause() instanceof UnknownHostException) {
    // ...
}
试试这个:

if (e.getCause() instanceof UnknownHostException) {
    // ...
}