का उपयोग कर SQLException पर लेनदेन रोलबैक मुझे संसाधनों के साथ प्रयास करने में समस्या है और मैं बस सुनिश्चित होने के लिए कह रहा हूं। क्या मैं इसका उपयोग कर सकता हूं, अगर मुझे अपवाद पर प्रतिक्रिया करने की ज़रूरत है, और मुझे अभी भी पकड़ ब्लॉक में संसाधन की आवश्यकता है? एक कोशिश के साथ-संसाधनों में "पकड़ और अंत में ब्लॉक -नए प्रयास-संसाधन-संसाधन ब्लॉक
try (java.sql.Connection con = createConnection())
{
con.setAutoCommit(false);
Statement stm = con.createStatement();
stm.execute(someQuery); // causes SQLException
}
catch(SQLException ex)
{
con.rollback();
// do other stuff
}
मुझे डर है कि मैं अभी भी इस मामले में-अंत में कोशिश पकड़ पुराने उपयोग करने के लिए बर्बाद कर रहा हूँ, यहाँ तक कि ओरेकल प्रलेखन के अनुसार: दिए गए उदाहरण यह है बयान, घोषित संसाधन बंद होने के बाद किसी भी पकड़ या आखिरकार ब्लॉक चलाया जाता है। "
यदि इस मामले में कनेक्शन स्वयं विफल हो गया है, तो इसे वापस रोल करने का कोई मतलब नहीं है। 'Con' का दायरा केवल ब्लॉक को सीमित करने के लिए सीमित है। – learningloop
यह प्रश्न भी मदद कर सकता है। http://stackoverflow.com/questions/9260159/java-7-automatic-resource-management-jdbc –
दिए गए सभी रोचक विकल्पों में से, मैं अभी भी मूल 'कोशिश-पकड़-अंत में' – Adam