程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#中如何處理異常(2)

C#中如何處理異常(2)

編輯:關於C語言

當try語句執行完成後,finally塊中的語句必將被執行。不論是否會發生由以下原因導致的程序控制轉移:

●普通操作的結果;

●執行break,continue,goto,或return語句的結果;

●將異常傳播到語句之外的結果。

我們用一個例子來證明finally語句的運行。

程序清單8-10:

using System;
class Test
{
  public static void Main()
  {
     try
     {
        Console.WriteLine("try");
        goto leave;
     }
     finally
     {
        Console.WriteLine("finally");
     }
     leave:
           Console.WriteLine("leave");
     }
}

該程序的輸出結果為:

try

finally

leave

由此可見,finally子句總能被執行。因此我們可以利用try-finally來清除異常。

如果在執行finally塊時拋出了一個異常,這個異常將被傳播到下一輪try語句中去。如果在異常傳播過程中又發生了一個異常,那麼這個異常將被丟失。

最後,由於我們對待異常的態度往往是:捕捉、清除、繼續執行程序,因此我們需要在程序中使用try-catch(s)-finally結構。

下面的例子計算函數值

float x,y,z;
     try{
     z=Math.Sqrt(x*x-y*y);
}
catch{
     z=Math.Sqrt(y*y-x*x);
}
finally{
     z=z+x;
}

其中第一個try語句捕捉負數開根號的異常,並與第二個catch語句配合達到取絕對值的目的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved