1. 程式人生 > >C#中異常處理語句Finally

C#中異常處理語句Finally

finally 程式碼塊中的程式碼是 try-catch 結構執行完後無論有無異常發生都會執行的。finally 程式碼塊中的程式碼是 try-catch 結構執行完後無論有無異常發生都會執行的。finally 程式碼塊中的程式碼是 try-catch 結構執行完後無論有無異常發生都會執行的。

重要的事情說三遍。重點要強調的是,finally 的執行條件只有這一個。

為什麼要這麼強調。是因為你很可能在 try-catch 裡直接 return 啊 break 啊 continue 啥的,導致跳出 try-catch 結構。你可能會想當然的認為既然我 return 了直接返回結果 finally 裡的程式碼就不會執行。這是錯誤的!因為 finally 執行條件只是【try-catch 結構執行完】,即使 try-catch 裡 return 了,依然還是會先執行 finally 裡的程式碼,然後才會真的 return。

而你要是不用 finally,直接把最後要統一執行的程式碼放在 try-catch 外面,那 try-catch 一 return,你的程式碼就不會被執行了。

所以 finally 最常用的地方是在裡面釋放物件佔用的資源的。

相關推薦

C#異常處理語句Finally

finally 程式碼塊中的程式碼是 try-catch 結構執行完後無論有無異常發生都會執行的。finally 程式碼塊中的程式碼是 try-catch 結構執行完後無論有無異常發生都會執行的。finally 程式碼塊中的程式碼是 try-catch 結構

46.一個例子瞭解C++異常處理

異常處理的棧展開、解構函式和建構函式的異常,異常處理的層次 catch的搜尋匹配 。。。 class wrong :public exception { public: wrong(const int& i = 0,const string& str = ""):err

C++異常處理

異常處理        try-throw-catch是丟擲和捕捉異常的基本機制,throw語句丟擲異常(一個值),catch塊捕捉異常。丟擲異常後,try塊終止,轉而執行catch塊的程式碼。Catch塊結束後,會據需執行catch塊之後的程式碼(前提是catch塊沒有終

java異常處理finally和return語句的執行順序

finally程式碼塊的語句在return之前一定會得到執行 如果try塊中有return語句,finally程式碼塊沒有return語句,那麼try塊中的return語句在返回之前會先將要返回的值儲存,之後執行finally程式碼塊,最後將儲存的返回值返回,

try-catch-finally 規則( 異常處理語句的語法規則 )

try-catch-finally 規則( 異常處理語句的語法規則 ) 1)  必須在 try 之後新增 catch 或 finally 塊。try 塊後可同時接 catch 和 finally 塊,但至少有一個塊。 2) 必須遵循塊順序:若程式碼同時使用 catch 和

java異常處理finally不要return

參考牛人部落格:http://www.cnblogs.com/Fskjb/archive/2012/02/15/2353256.html public class Ex1 {     public static void main(String[] args) {   

C# 語句異常處理語句

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 自定義異常{ class Triangle {

C++讀寫檔案過程異常處理機制

        在利用C++進行檔案讀取與寫入過程中,無論是針對二進位制檔案還是文字檔案均需要進行異常處理,在C++中我們可以利用CFile進行檔案的讀寫,而在MFC中還可以利用CStdioFile進行檔案的讀寫。         利用CFile進行讀文字檔案過程中的異常處

中文在C/C++處理和漢字亂碼問題(wchar_t)

生成 setlocale 錯誤 並且 超過 函數 開發 長度 tracking 中文字在C/C++中的處理 現在編程的語言和編程環境隨著中國的發展開始對中文有進一步的支持。可是對中文的支持整體來說是有缺陷的,並且有與編譯環境的不同導

Java - 若try有return語句,finally會執行嗎?在return之前還是之後呢?

內存空間 rgs -- 取消 turn all urn stat fin 會執行,在方法return動作之前,return語句執行之後,若finally中再有return語句,則此方法以finally的return作為最終返回,若finally中無return語句,則此方法

java異常處理機制 throw拋出自定義業務邏輯異常 throws繼續拋出 catch捕獲後會自動繼續拋向調用方法

異常處理機制 ... cep super finally sta exc ace 避免 package com.swift; public class Exception_TestC { public static void main(String[] arg

C#使用SQL語句什麽情況需要使用‘單引號’和“雙引號”

sql 一行 情況 values log 雙引號 table 引號 insert 例如 string sql = " insert into [Demo].[dbo].[textable] (姓名,身份證號)values (‘" + name.Text.ToString(

C語言異常處理之 setjmp()和longjmp()

divide font 變量 bsp ron 否則 sharp highlight == 異常處理之除0情況 相信大家處理除0時,都會通過函數,然後判斷除數是否為0,代碼如下所示: double divide(doublea,double b) { co

C 語言異常處理(五十二)

異常處理 C 中的異常處理 if...else... setjmp() longjmp() 我們今天來看下異常處理,在看 C++ 的異常處理之前,先來看看 C 語言中的異常處理。那麽什麽是異常呢?在程序運行過程中可能會產生異常,異常(Exception)與 Bug 的區別是

.NET&C#的異常處理

args inf win 分享圖片 線程 patch tro handler environ 應用程序未捕獲異常的處理 處理未捕獲的異常是每個應用程序起碼有的功能 無論是Windows窗體程序還是WPF程序,我們都看到捕獲的異常當中分為"窗體線程異常"和"非窗體線程異常

C#程式設計基礎第五課:c#swtich結構語句的使用

知識點:swtich結構。 1、switch選擇結構 switch結構是除if結構外的另一種分支語句,主要用於單個值的判斷。 多分支語句,通過判斷整型表示式的值,來決定執行語句,通常與case配合使用 switch ——開關,case ——情況,開關決定發生的情

Java常用的異常處理情況及關於開發異常處理的建議

cloneabl 軟件 完整性 內置 加載類 異常信息 dstat 應用程序 dsta 本周四老師由一個簡單程序將問題引出,講授了Java中異常處理的情況。根據課件內容及上網查閱資料,將關於JAVA項目中的常用的異常處理情況總結如下: 首先什麽是異常(Exception

java專案異常處理情況

一,基本概念   異常是程式在執行時出現的不正常情況。是Java按照面向物件的思想將問題進行物件封裝。這樣就方便於操作問題以及處理問題。  異常處理的目的是提高程式的健壯性。你可以在catch和finally程式碼塊中給程式一個修正機會,使得程式不因不可控制的異常而影響程式的流程。同時,通過獲取Java異常

c#】異常處理:try catch throw

        異常處理,是程式語言或計算機硬體裡的一種機制,用於處理軟體或資訊系統中出現的異常狀況(即超出程式正常執行流程的某些特殊條件)。 也就是說,在程式執行時出現的任何意外或異常情況時,處理這種意外或情況的方法,叫做異常處理。  

《隨筆十三》——C#的 “ foreach 語句

目錄 迭代變數是隻讀的 交錯陣列使用foreach 迴圈  ● foreach 語句允許我們依次訪問某個序列中的元素,並且不存在訪問非法元素的危險。 不需要考慮該序列中有多少個元素, 並可以確保將在迴圈中使用每個元素。  語法為: foreach (Typ