Java中try()catch{}的使用方法
今天擼程式碼的時候發現了一段這樣的程式碼
try(
Connection conn=DriverManager.getConnection(url,user,pass);
Statement stmt=conn.createStatement()
) {
boolean hasResultSet=stmt.execute(sql);
}
和平常見的不一樣,我們平常見的是這樣的
try{
fis=new FileInputStream("src\\com\\ggp\\first\\FileInputStreamDemo.java");
byte[]bbuf=new byte[1024];
int hasRead=0;
while((hasRead=fis.read(bbuf))>0){
System.out.println(new String(bbuf,0,hasRead));
}
}catch(IOException e){
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
如果{}中的程式碼塊出現了異常,會被catch捕獲,然後執行catch中的程式碼,接著執行finally中的碼,其中catch中的程式碼有了異常才會被執行,finally中的程式碼無論有沒有異常都會被執行,
而第一種情況的()中的程式碼一般放的是對資源的申請,如果{}中的程式碼出項了異常,()中的資源就會被關閉,這在inputstream和outputstream的使用中會很方便例如
private static void customBufferStreamCopy(File source, File target) {
try (InputStream fis = new FileInputStream(source);
OutputStream fos = new FileOutputStream(target)){
byte[] buf = new byte[8192];
int i;
while ((i = fis.read(buf)) != -1) {
fos.write(buf, 0, i);
}
}
catch (Exception e) {
e.printStackTrace();
}
}
從網上查閱資料得知從 Java 7 build 105 版本開始,Java 7 的編譯器和執行環境支援新的 try-with-resources 語句,稱為 ARM 塊(Automatic Resource Management) ,自動資源管理。
The try
-with-resources statement is a try
statement that declares one or more resources. A resource is an object that must be closed after the program is finished with it. The try
-with-resources statement ensures that each resource is closed at the end of the statement. Any object that implements java.lang.AutoCloseable
, which includes all objects which implement java.io.Closeable
, can be used as a resource.
帶有resources的try語句宣告一個或多個resources。resources是在程式結束後必須關閉的物件。try-with-resources語句確保在語句末尾關閉每個resources。任何實現java.lang.AutoCloseable,包括實現了java.io.Closeable的類,都可以
作為resources使用。
相關文章
- Java try catch finally 總結Java
- try ,catch
- js中try和catch的用法JS
- Laravel try catchLaravel
- 【轉】java中異常與try catch finally詳解Java
- Java之異常處理try{}catch(){}Java
- Java之try-catch和throws的區別Java
- c++中的try-catch及throwC++
- java try(){}catch(){}自動資源釋放Java
- try-catch-finally的使用
- JavaScript 中 try...catch 的 10 個使用技巧JavaScript
- try/catch 的解釋與用法
- JAVA的異常處理機制(一)——try...catch...finallyJava
- JavaScript try catch finally 語句JavaScript
- JavaScript try/catch/finally 語句JavaScript
- [Java基礎]try-catch-finally 和 return 的執行順序Java
- (十四).try-throw-catch機制
- IDEA 自動生成try,catch快捷鍵Idea
- JS 使用try catch捕獲異常JS
- Will it finally: 關於 try/catch 的一些細節
- try throw catch 語句檢測input值
- NodeJS 實戰系列:如何設計 try catchNodeJS
- try-catch-finally,被你忽略掉的執行順序
- 異常-try...catch的方式處理異常1
- 異常-try...catch的方式處理異常2
- 關於php的try catch 使用的疑惑,希望高手指點PHP
- Sqlserver Try Catch時Catch捕獲到錯誤則重試一次的寫法SQLServer
- yii2-wx / 在yii2-wx中如何正確的使用try….catch….
- 解決程式碼中重複的捕獲 promise 錯誤的 try catch 語句Promise
- java中的try-with-resource語法Java
- PHP 的異常處理之try和catch用法小結PHP
- 有return的情況下try catch finally的執行順序
- (轉)有return的情況下try catch finally的執行順
- 在 SQL Server 中使用 Try Catch 處理異常SQLServer
- 無需寫try/catch,也能正常處理異常
- java中json的使用方法JavaJSON
- Swift4 異常處理Try_Catch的使用之初見Swift
- 返回Promise物件的函式,函式內部記得加try catch!Promise物件函式