欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

輕松學(xué)習(xí)C#的異常處理

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點擊: 次

       異常是程序運行中發(fā)生的錯誤,異常處理是程序設(shè)計的一部分。錯誤的出現(xiàn)并不總是編寫應(yīng)用程序者的原因,有時候應(yīng)用程序會因為終端用戶的操作發(fā)生錯誤。無論如何,在編寫程序前,都應(yīng)該預(yù)測應(yīng)用程序和代碼中出現(xiàn)的錯誤。一般良好的編程規(guī)范也會避免一些不必要的程序錯誤的出現(xiàn)。
        在項目的開發(fā)過程中,并不是所有的代碼執(zhí)行都和想象那樣理想,總是避免不了異常的發(fā)生。這就需要編程語言的去處理這些異常,C#語言中有三種異常處理語句:
        try...catch;//處理異常
        try...finally;//清楚異常
        try...catch...finally;//處理所有異常
一、用try...catch語句捕獲異常
        在try語句中包含容易產(chǎn)生異常的代碼,接著捕獲異常,catch段里的代碼會注意進(jìn)行適當(dāng)?shù)奶幚恚?br /> 格式為:
        try
        {
        }
        catch(異常類  異常對象實例)
        {
        }
例一:用上述的語句捕獲訪問整型數(shù)組nums時產(chǎn)生索引越界異常,并提示給用戶:

<span style="font-size:18px;">using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace Text 
{ 
 class Program 
 { 
  static void Main(string[] args) 
  { 
   int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
   try//捕獲異常 
   { 
    for (int i = 0; i <= nums.Length; i++)//遍歷數(shù)組所有元素 
    { 
     Console.Write(nums[i] + " "); 
    } 
   } 
   catch (Exception a)//訪問異常對象 
   { 
    Console.Write(a.Message);//輸出異常錯誤 
   } 
    Console.WriteLine(); 
    Console.ReadLine(); 
  } 
 
 } 
}</span> 

輸出的結(jié)果為:

 

       由于數(shù)據(jù)元素的索引是從0開始的,for語句遍歷數(shù)組元素時,用了“小于或等于”,正好多遍歷一次,所以出現(xiàn)索引越界。
二、清除與處理所有異常
        如果用戶對產(chǎn)生的錯誤不進(jìn)行處理,而清除產(chǎn)生的錯誤分配的資源,那么可以使用try...finally語句來完成,這里的finally塊用于清除try塊中分配的任何資源以及運行任何即使在發(fā)生異常時也必須執(zhí)行的帶代碼。格式為:
         try
        {
        }
        catch(異常類  異常對象實例)
        {
        }
        finally
        {
        }
        這個組合是處理所有異常最好的,它合并前面兩種錯誤處理技術(shù),即捕獲錯誤,清除并繼續(xù)執(zhí)行應(yīng)用程序。
例二:用240去除這個數(shù)組中的各元素,由于數(shù)組中的元素值有0,所以會產(chǎn)生處數(shù)據(jù)為0的錯誤。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace Text 
{ 
 class Program 
 { 
  static void Main(string[] args) 
  { 
   int[] nums = { 4,8,12,0,10 }; 
   try//捕獲異常 
   { 
    for (int i = 0; i < nums.Length; i++) 
    { 
     int valude = 0; 
     valude = 240 / nums[i]; 
     Console.WriteLine("240/{0}={1}", nums[i], valude); 
    } 
   } 
   catch (Exception a)//訪問異常對象 
   { 
    Console.WriteLine(a.Message);//輸出異常錯誤 
   } 
   finally 
   { 
    Console.WriteLine("有沒有異常我都會運行"); 
   } 
    Console.WriteLine(); 
    Console.ReadLine(); 
  } 
 
 } 
} 

        輸出的結(jié)果為:

三、引發(fā)異常
        在編寫程序時,有時可能要引發(fā)異常,以便捕獲異常。引發(fā)異常是通過throw語句和一個適當(dāng)?shù)漠惓n悂韺崿F(xiàn)的。其格式為:
        throw  new  異常類(異常描述);
        異常類可以是C#語言類庫中提供的異常類,也可以是自定義異常類。異常描述為可選擇項,用來描述產(chǎn)生異常錯誤,可產(chǎn)生異常時捕獲到以便快速找到產(chǎn)生錯誤的代碼。
例三:將字符串轉(zhuǎn)換為整數(shù)的異常

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace Text 
{ 
 class Program 
 { 
  static void Main(string[] args) 
  { 
   string str = "string"; 
   try 
   { 
    int returnInt; 
    returnInt = Program.ConvertStringToInt(str);//調(diào)用轉(zhuǎn)換 
    Console.Write(returnInt); 
   } 
   catch (FormatException a) 
   { 
    Console.WriteLine(a.Message); 
   } 
   Console.ReadLine(); 
  } 
  private static int ConvertStringToInt(string str)//定義轉(zhuǎn)換函數(shù) 
  { 
   int intNum = 0; 
   try 
   { 
    intNum = Convert.ToInt32(str); 
    return intNum; 
   } 
   catch 
   { 
    throw new FormatException("轉(zhuǎn)換錯誤");//引發(fā)異常 
   } 
  } 
 
 } 
} 

輸出的結(jié)果為:

四、自定義異常類
          C#語言雖然預(yù)定義了許多異常類,但是,在有些場合,創(chuàng)建自己的異常類可能會方便。自定義異常類是通過繼承System.Exception類來創(chuàng)建自己的異常類。其步驟是:
(1)聲明一個異常,格式如下:class  異常類名:Exception{ }
(2)引發(fā)自己的異常,格式如下: throw(ExceptionName);
 例四:定義一個異常類MyException,然后引發(fā)這個異常類。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
 
namespace Text 
{ 
 class MyException : SystemException { }//聲明異常 
 class Program 
 { 
  static void Main(string[] args) 
  { 
   try 
   { 
    Console.WriteLine("引發(fā)異常前我是被執(zhí)行的");//引發(fā)異常前的提示 
    throw new MyException(); 
    Console.WriteLine("因為已經(jīng)引發(fā)異常,所以我不能被執(zhí)行"); 
   } 
   catch (MyException) 
   { 
    Console.WriteLine("引發(fā)異常"); 
   }  
   Console.ReadLine(); 
  } 
 
 } 
} 

輸出的結(jié)果為:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

上一篇:C#數(shù)據(jù)結(jié)構(gòu)之堆棧(Stack)實例詳解

欄    目:C#教程

下一篇:C#定制Excel界面并實現(xiàn)與數(shù)據(jù)庫交互的方法

本文標(biāo)題:輕松學(xué)習(xí)C#的異常處理

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6809.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有