成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#異常機制的相關解釋

開發 后端
C#中的表達式為處理系統級別和應用程序級別的錯誤條件,提供了一個構造的、統一的合類型安全的方法。C#異常機制與C++中的相當相似,但是有一些重要的不同之處。

C#異常機制與C++中的相當相似,但是有一些重要的不同之處:

◆在C#異常機制中,所有的異常必須用一個從System.Exception派生的類類型的實例表示。在C++中,任何類型的任何數值都可以用于表示異常。

◆在C#異常機制中,一個最后的塊(§錯誤!未找到引用源。)可以被用來編寫在正常指向和異常條件下都可以執行的中止代碼。如果沒有重復代碼,那樣的代碼在C++中很難寫。

◆在C#異常機制中,如溢出、被零除和空解除參照等系統級的異常會有被很好定義的異常類,并且應用程序級別錯誤條件等同。

1.1異常的產生異常可以用兩種不同的方法拋出。

◆一個throw語句(§錯誤!未找到引用源。)會直接無條件地拋出一個異常。控制不會接觸到緊跟在throw后面的語句。

◆當操作符不能正常結束時,在某種特殊情況下,在C#語句和表達式執行的過程中產生的某種異常的條件產生一個異常。例如,一個整數除法操作(§錯誤!未找到引用源。)在分母為零時拋出一個System.DivideByZeroException異常。§16.4中給出了一個可以在這種方式下發生的各種異常的列表。

1.2System.Exception類類System.Exception似所有異常的基本類型。這個類有一些值得注意的屬性,這些屬性所有異常都有:

◆Message是一個只讀屬性,它是一個只讀屬性,可以包含一個可以被人讀的異常原因的描述。

◆InnerException是一個只讀屬性,它包含這個異常的“內部異常”。如果它不是null,就指出當前的異常是作為對另外一個異常的回答而被拋出。產生當前異常的異常可以在InnerException屬性中得到。

這些屬性的數值可以在System.Exception構造函數中指定。

1.3異常怎樣被處理異常被try語句(§錯誤!未找到引用源。)處理。

當發生一個異常,系統就會查找離可以處理這個異常的語句最近的catch語句,并且有異常的運行時類型決定。首先,當前的方法是查找文字上很近,并且與try語句相關的catch語句會被按順序考慮。如果這樣做失敗了,就會查找調用try語句的方法和當前的方法中文字接近的地方,這個try語句圍繞著對當前方法調用的點。通過對與異常被拋出的運行時類型的相同的類或基類的命名來進行查找,這個查找一直進行直到找到可以處理當前的異常的catch語句為止。一個沒有對一個異常類命名的catch語句可以處理任何異常。

一旦找到匹配的catch語句,系統就被控制權交給catch語句的第一個語句。在這個catch語句開始執行前,系統首先執行與try語句相關,而且比俘獲異常的語句嵌套更深的任何finally語句。

如果沒有找到匹配的catch語句,下面兩件事情中的一件就會發生:

◆如果對匹配的catch語句的查找找到了一個靜態構造函數(§10.12)或靜態域初始化函數,那么就會在引發對靜態構造函數調用的地方拋出一個System.TypeInitializationException異常。TypeInitializationException的內部異常包含最初拋出的異常。

◆如果對匹配的catch語句的查找找到了一個最初開始這個線程或程序的代碼,那么這個線程或程序的執行就被中止。

1.4通用異常類下面的異常被某些C#操作拋出。

System.OutOfMemoryException

當試圖通過new來分配內存而失敗時拋出。

System.StackOverflowException

當執行棧被太多未完成的方法調用耗盡時拋出;典型情況是指非常深和很大的遞歸。

System.NullReferenceException

當null引用在造成引用的對象被需要的情況下使用時拋出。

System.TypeInitializationException

當一個靜態構造函數拋出一個異常,并且沒有任何catch語句來俘獲它的時候拋出。

System.InvalidCastException

當一個從基本類型或接口到一個派生類型的轉換在運行時失敗時拋出。

System.ArrayTypeMismatchException

當因為存儲元素的實例類型與數組的實際類型不匹配而造成象一個數組存儲失敗時拋出。

System.IndexOutOfRangeException

當試圖通過一個比零小或者超出數組邊界的標簽來索引一個數組時拋出。

System.MulticastNotSupportedException

當試圖合并兩個非空代表失敗時拋出;因為代表類型沒有void返回類型。

System.ArithmeticException

一個異常的基類,它在算術操作時發生,如DivideByZeroException和OverflowException.

System.DivideByZeroException

當試圖用整數類型數據除以零時拋出。

System.OverflowException

當checked中的一個算術操作溢出時拋出。

【編輯推薦】

  1. 分析C#不安全代碼
  2. 淺析C#調用ImageAnimator
  3. C#連接Access、SQL Server數據庫
  4. 淺談C#固定的和活動的變量
  5. 介紹C#中的值類型
責任編輯:彭凡 來源: blog.pfan.cn
相關推薦

2009-08-05 18:28:05

C#異常處理

2009-08-05 18:39:54

C#異常類

2009-08-05 18:09:17

C#異常處理機制

2009-09-02 14:00:34

C#文件處理

2025-01-09 12:01:53

2009-08-06 10:55:46

C#代碼解釋器

2009-08-06 14:08:08

C#語言異常處理

2009-08-31 17:26:32

C#異常處理

2009-08-26 09:36:03

C#泛型

2009-08-28 10:22:47

C# DLLImpor

2009-08-21 08:41:44

C#反射

2009-09-03 11:00:29

C#反射機制

2009-09-01 16:14:08

C# Socket類

2009-08-07 14:00:06

C#路徑

2009-08-13 14:59:00

C#數據訪問層

2011-08-05 09:33:30

Func局部變量作用域

2011-07-14 11:08:30

C#繼承

2011-06-08 10:06:32

C#

2024-04-16 12:18:05

編程異常處理錯誤返回

2009-08-06 15:26:18

C#異常類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一级 | 91福利在线观看 | 欧美一区不卡 | 91福利在线观看 | 欧美日韩亚洲视频 | 久久精品欧美一区二区三区麻豆 | 国产免费一区二区 | 日韩午夜影院 | 精品国产高清一区二区三区 | 在线观看电影av | 色偷偷人人澡人人爽人人模 | 日韩久久久久久久久久久 | av中文字幕网 | 亚洲视频 欧美视频 | 女同av亚洲女人天堂 | 亚洲在线中文字幕 | 91精品一区二区三区久久久久久 | 黑人巨大精品 | 日韩第一区| 成av人电影在线 | 久草视 | 99热这里都是精品 | 91精品久久久久久久久久小网站 | 91污在线| 亚洲视频二| 涩涩视频大全 | 日本亚洲精品成人欧美一区 | 91精品久久久久久久久久入口 | 中文字幕乱码一区二区三区 | 日韩欧美国产综合 | 91视频进入| 日韩精品 电影一区 亚洲 | 免费观看av网站 | 中文字幕一区在线观看视频 | 日本天堂视频 | 1000部精品久久久久久久久 | 在线成人av | 日韩一区在线观看视频 | 国产精品久久网 | 99免费看| 欧美片网站免费 |