如何捕获“java.net.ConnectException:Connection refused:connect”异常

时间:2011-08-30 13:18:36

标签: java mysql exception-handling

要检查服务器关闭或网络无法运行时会发生什么,我停止了Apache和MySQL服务并运行了我的代码。
我收到了以下错误:

  

java.net.ConnectException:连接被拒绝:连接

如何在代码中捕获此异常?

我试过这个:

public static Connection getCon(){
  Connection con=null;


  try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    con=DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/zomatocrm","root","");
  }

  catch(Exception e){
    System.out.println(e.getMessage());
    if(e.getCause() instanceof SQLException){
      JOptionPane.showMessageDialog(null, "Connection refused!");
    }                   
  }
  return con;
}

还有这个

 public static Connection getCon(){
   Connection con=null;

   try{
     Class.forName("com.mysql.jdbc.Driver").newInstance();
     con=DriverManager.getConnection(
         "jdbc:mysql://localhost:3306/zomatocrm","root","");
   }

   catch(Exception e){
     System.out.println(e.getMessage());
     if(e.getCause() instanceof ConnectException){
       JOptionPane.showMessageDialog(null, "Connection refused!");
     }                   
   }
   return con;
 }

此外,我已经使用连接与我的xampp localhost服务器进行数据交换,然后尝试停止xamp并仍然获得上述异常。

如何让我的代码完全捕获异常?

1 个答案:

答案 0 :(得分:-2)

  1. 不检查原因,而是检查异常本身
  2. 只捕获您需要捕获的异常
  3. 考虑到这一点:

    public static Connection getCon() {
        Connection con=null;
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con=DriverManager.getConnection("jdbc:mysql://localhost:3306/zomatocrm", "root", "");
        }
        catch (ConnectException e){
           System.out.println(e.getMessage());
           JOptionPane.showMessageDialog(null, "Connection refused!!!");
        }
        return con;
    }