日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源

發布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

plsql如何執行單個語句

Java 7最有用的新功能之一是引入了try-with-resources語句 [AKA 自動資源管理 ( ARM )]。 try-with-resources語句的吸引力在于它承諾 “確保在語句末尾關閉每個資源”。 在這種情況下,“資源”是實現AutoCloseable及其close()方法并在try-with-resources語句的“ try”子句中實例化的任何類。

Java語言規范 [JLS]在14.20.3節 (在這種情況下為Java SE 10 JLS )中詳細描述了try-with-resource語句 。 JLS聲明“ try -with-resources語句是使用局部變量(稱為resources )進行參數化的,這些局部變量在try塊執行之前進行了初始化,并在執行try之后以與初始化時相反的順序自動關閉塊。”

JLS明確指定可以相對于單個try -with-resources語句定義多個資源,并且它指定如何指定多個資源。 具體地說,它表明try可以跟隨一個“ ResourceSpecification ,其由一個”的“ ResourceList ,其由一個或多個“的” 資源 “秒。 當聲明的資源多于一個時,多個資源用分號( ; )分隔。 用分號分隔的列表指定多個資源非常重要,因為try -with-resources語句將不支持(不會自動關閉)未以此方式聲明的任何候選資源。

在try -with-resources語句中指定多個資源時,最可能的錯誤源是“嵌套”“資源”的實例化,而不是顯式地實例化每個變量的局部變量,而在每個實例化之間不使用分號。 以下示例將說明差異。

接下來顯示兩個荒謬但說明性的類。 每個類都實現AutoCloseable ,因此可以與try -with-resources結合使用,并且在與try -with-resources語句正確使用時將自動調用其close()方法。 命名它們以反映可以使用InnerResource的實例實例化OuterResource 。

InnerResource.java

package dustin.examples.exceptions;import static java.lang.System.out;public class InnerResource implements AutoCloseable {public InnerResource(){out.println("InnerResource created.");}public InnerResource(final RuntimeException exceptionToThrow){throw exceptionToThrow != null? exceptionToThrow: new RuntimeException("InnerResource: No exception provided.");}@Overridepublic void close() throws Exception{out.println("InnerResource closed.");}@Overridepublic String toString(){return "InnerResource";} }

OuterResource.java

package dustin.examples.exceptions;import static java.lang.System.out;public class OuterResource implements AutoCloseable {private final InnerResource wrappedInnerResource;public OuterResource(final InnerResource newInnerResource){out.println("OuterResource created.");wrappedInnerResource = newInnerResource;}public OuterResource(final InnerResource newInnerResource,final RuntimeException exceptionToThrow){wrappedInnerResource = newInnerResource;throw exceptionToThrow != null? exceptionToThrow: new RuntimeException("OuterResource: No exception provided.");}@Overridepublic void close() throws Exception{out.println("OuterResource closed.");}@Overridepublic String toString(){return "OuterResource";} }

現在,可以使用剛剛定義的兩個類來證明在用分號分隔的列表中的同一try -with-resources語句中正確聲明每個實例的實例與在外部資源的構造函數中錯誤地嵌套內部資源的實例之間的區別。 后一種方法效果不理想,因為就調用其AutoCloseable.close()方法而言,沒有本地定義變量的內部資源不會被視為“資源”。

下一個代碼清單演示了在try -with-resources語句中實例化“資源”的錯誤方法。

在try -with-resources語句中實例化資源的錯誤方法

try (OuterResource outer = new OuterResource(new InnerResource(), new RuntimeException("OUTER"))) {out.println(outer); } catch (Exception exception) {out.println("ERROR: " + exception); }

執行上述代碼后,輸出“ InnerResource created”。 可以看到,但是從未顯示與資源關閉相關的輸出。 這是因為InnerResource的實例是在對OuterResource類的構造函數的調用中實例化的,并且從未在try -with-resource語句的資源列表中分配給其自己的單獨變量。 對于真正的資源,這意味著資源沒有正確關閉。

下一個代碼清單演示了在try -with-resources語句中實例化“資源”的正確方法。

在try -with-resources語句中實例化資源的正確方法

try(InnerResource inner = new InnerResource();OuterResource outer = new OuterResource(inner, new RuntimeException("OUTER"))) {out.println(outer); } catch (Exception exception) {out.println("ERROR: " + exception); }

當執行上面緊接的代碼時,輸??出將包括“ InnerResource created”。 并且“ InnerResource已關閉。” 因為InnerResource實例已在try -with-resources語句中正確分配給變量,因此即使實例化期間發生異常,也將正確調用其close()方法。

Java教程的try-with-resources語句部分包括幾個示例,這些示例正確地將try -with-resources中的資源指定為以分號分隔的單個變量定義。 一個示例通過java.util.zip.ZipFile和java.io.BufferedWriter展示了這種正確的方法,而另一個示例通過java.sql.Statement和java.sql.ResultSet的實例展示了這種正確的方法。

在JDK 7中引入try -with-resources是對該語言的一種受歡迎的補充,它使Java開發人員可以更輕松地編寫不太可能泄漏或浪費資源的資源安全的應用程序。 但是,當在單個try -with-resources語句中聲明多個資源時,重要的是要確保每個資源都單獨實例化并分配給在try的資源說明符列表中聲明的自己的變量,以確保每個資源都是正確關閉。 一種快速的檢查方法是確保對于try指定的n個 AutoCloseable實現資源,應該有n-1個分號來分隔這些實例化的資源。

翻譯自: https://www.javacodegeeks.com/2018/08/carefully-specify-multiple-resources.html

plsql如何執行單個語句

總結

以上是生活随笔為你收集整理的plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。