在學習數據庫連接時看到try(){}結構,查了一下寫在這里:

1 import java.sql.Connection; 2 import java.sql.DriverManager; 3 import java.sql.ResultSet; 4 import java.sql.Statement; 5 6 /** 7 * Created by BoGummyYoung on 2017/4/6. 8 */ 9 public class ConnMySql 10 { 11 public static void main(String[] args) throws Exception 12 { 13 //1.加載驅動,使用反射知識,現在記住這么寫 14 Class.forName("com.mysql.jdbc.Driver"); 15 try( 16 //2.使用DriverManager獲取數據庫連接 17 //其中返回的Connection就代表了Java程序和數據庫的連接 18 //不同數據庫的URL寫法需要查驅動文檔,用戶名、密碼由DBA分配 19 Connection conn = DriverManager.getConnection( 20 "jdbc:mysql://localhost:3306/select_test" 21 ,"root","bogummy"); 22 //3.使用Connection來創建一個Statement對象 23 Statement stmt = conn.createStatement(); 24 //4.執行SQL語句 25 /* 26 Statement 有三種執行SQL語句的方法: 27 1.execute()可執行任何SQL語句——返回一個boolean值 28 如果執行后第一個結果是ResultSet,則返回true,否則返回false 29 2.executeQuery()執行select語句——返回查詢到的結果集 30 3.executeUpdate()用於執行DML語句——返回一個整數 31 代表被SQL語句影響的記錄條數 32 */ 33 ResultSet rs = stmt.executeQuery("select s.*, teacher_name" 34 +" from student_table s , teacher_table t" 35 +" where t.teacher_id = s.java_teacher")) 36 { 37 //ResultSet有一系列的getXxx(列索引 | 列名)方法,用於獲取記錄指針 38 //指向行、列特定的值,不斷地使用next()將記錄指針下移一行 39 //如果移動之后記錄指針依然指向有效行,則next()方法返回true 40 while(rs.next()) 41 { 42 System.out.println(rs.getInt(1) + "\t" 43 + rs.getString(2) + "\t" 44 + rs.getString(3) + "\t" 45 + rs.getString(4) + "\t"); 46 } 47 } 48 } 49 }
基本的異常處理:
1 try 2 { 3 //業務實現代碼 4 ... 5 } 6 catch (Exception e) 7 { 8 alert 輸入不合法 9 goto retry 10 }
如果執行try塊里的業務邏輯代碼時出現異常,系統自動生成一個異常對象,該異常對象被提交給Java運行時環境,這個過程被稱為拋出(throw)異常。
通常情況下,如果try塊被執行一次,則try塊被執行一次,則try塊后只有一個catch塊會被執行,絕不可能有多個catch塊被執行,除非在循環中使用了continue開始下一次循環,下一次循環又重新運行了try塊,這才可能導致多個catch塊被執行。
Java把所有非正常情況分成兩種:異常(Exception)和錯誤(Error),它們都集成Throwable父類。
Error錯誤:一般是與虛擬機相關的問題,如系統崩潰、虛擬機錯誤、動態鏈接失敗等,這種錯誤無法恢復或不可能補貨,將導致應用程序終端,不會使用catch塊來補貨Error對象。
回收資源:try塊里打開了一些物理資源(例如數據庫連接、網絡連接和磁盤文件等),這些物理資源都必須顯示回收。
1、finally回收
1 try 2 { 3 //業務實現代碼 4 } 5 catch (SubException e) 6 { 7 //異常處理塊1 8 } 9 catch (SubException2 e) 10 { 11 //異常處理塊2 12 } 13 ...... 14 finally 15 { 16 //資源回收塊 17 }
2、Java7自動關閉資源的try語句
try關鍵字后面緊跟一隊圓括號,圓括號可以聲明、初始化一個或多個資源,此處的資源值得是那些必須在程序結束時顯示關閉的資源(比如數據庫連接、網絡連接等),try語句在該語句結束時自動關閉這些資源。
try() { }