catch语句中的对象创建



这里有一个简单的程序:

public class Main {
    private static Connection connectON = null; 
    private static PreparedStatement preparedStatementON = null;
    public static void main (String args[]) throws Exception {        
    try{ 
        Class.forName("org.mariadb.jdbc.Driver");
        connectON = DriverManager.getConnection("jdbc:mysql:/234234/ /?"+"user t& d= 3"); 
        System.out.println("Trying to connect to online"+connectON);                 
        System.out.println( "-----MAIN----");
        BaseDataUploader da = new BaseDataUploader();da.readDataB ();
    }
    catch (Exception e) {
        BaseDataUploader da2  = new BaseDataUploader();  //loads data from DFA to base 
        da2.errorLog(e,0000);
        throw e;
    }
    finally { 
        if(preparedStatementON !=null)
            preparedStatementON.close();
        if(connectON !=null)
            connectON.close();
        }  
    }
}

现在我想知道,即使没有发生异常,是否在catch语句中创建了新对象?谢谢大家。

catch块中的代码只有在发生异常时才会执行,因此如果在那里创建对象,则只有在捕捉到异常时才会创建。最终块中的代码始终执行。顺便说一句,比在这里发布问题要快得多的是自己尝试这样的东西:

        Object o = null;
        boolean throwIt = false; //or true
        try{
            if (throwIt)
                throw new Exception();
        }catch (Exception e){
            o = new Object();
        }
        System.out.println(o);

您需要了解try-catch finally块是如何工作的来回答这个问题。如果你读过这些区块,你自己就能回答这个问题。但为了帮助您做到这一点,如果没有发生异常,catch块将不会执行,因此不会创建对象
对象是在catch块中创建的,所以如果这个块没有被执行,对象也不会被创建。

这个链接解释了try-catch finally块的基本工作。

相关内容

  • 没有找到相关文章

最新更新