淺析ASP.Net之C#中的異常處理(2)_.Net教程
推薦:ASP.Net網(wǎng)絡(luò)數(shù)據(jù)庫(kù):連接到數(shù)據(jù)庫(kù)1.使用數(shù)據(jù)庫(kù)MyFirstAccessDB 本實(shí)例使用的數(shù)據(jù)庫(kù)名稱為MyFirstAccessDB,版本為Microsoft Access 2003中文版。該數(shù)據(jù)庫(kù)已經(jīng)在1.4.2節(jié)中創(chuàng)建。 2.創(chuàng)建新ASP.NET應(yīng)用程序 在Visual Studio .NET 2003集成開發(fā)環(huán)境中創(chuàng)建新的ASP.NET Web應(yīng)用程序,命名為Examp
可以采取如下形式記錄異常:
在文件中記錄異常。便于技術(shù)人員查看所發(fā)生的異常,從而日后對(duì)程序進(jìn)行改進(jìn)。
在數(shù)據(jù)庫(kù)中記錄異常。數(shù)據(jù)庫(kù)支持查詢,這樣在后期就能夠?qū)Ξ惓_M(jìn)行分類查詢等操作,便于查看與管理。
在Eventlog中記錄異常。能夠遠(yuǎn)程操作,方便系統(tǒng)管理員監(jiān)控所有計(jì)算機(jī)的異常。
除了可預(yù)料到的異常外,還有未預(yù)料到的異常。這類異常是無(wú)法進(jìn)行管理的,發(fā)生后將系統(tǒng)程序轉(zhuǎn)移到特定的錯(cuò)誤頁(yè)面,提示用戶系統(tǒng)出錯(cuò),結(jié)束程序。做好日志能為解決和調(diào)試問(wèn)題帶來(lái)很多方便。要避免使用了Try-Catch但沒有處理異常的情況,否則就相當(dāng)于給異常放行(這種情況還不如根本不去捕獲)。
異常處理,還應(yīng)該注意在Finally塊中釋放相關(guān)資源、還原相關(guān)設(shè)置信息等收尾工作�;境绦蚪Y(jié)構(gòu)如下:
try
{
int x = 123/0; //會(huì)拋出一個(gè)除數(shù)為0的異常
}
catch
{
// ... //在這里捕捉到這個(gè)異常,然后進(jìn)行相關(guān)處理
}
finally
{
// ... //在這里做最后的清理或是其他工作
}
本章的異常處理是針對(duì)容易出現(xiàn)錯(cuò)誤的地方(操作數(shù)據(jù)庫(kù))應(yīng)用此技術(shù),但是只是捕捉到SQL異常后,給用戶一個(gè)錯(cuò)誤提示,并沒有進(jìn)一步作程序的處理。
C#中常見異常類
Exception:所有異常對(duì)象的基類。
SystemException:運(yùn)行時(shí)產(chǎn)生的所有錯(cuò)誤的基類。
IndexOutOfRangeException:當(dāng)一個(gè)數(shù)組的下標(biāo)超出范圍時(shí)運(yùn)行時(shí)引發(fā)。
NullReferenceException:當(dāng)一個(gè)空對(duì)象被引用時(shí)運(yùn)行時(shí)引發(fā)。
InvalidOperationException:當(dāng)對(duì)方法的調(diào)用對(duì)對(duì)象的當(dāng)前狀態(tài)無(wú)效時(shí),由某些方法引發(fā)。
ArgumentException:所有參數(shù)異常的基類。
ArgumentNullException:在參數(shù)為空(不允許)的情況下,由方法引發(fā)。
ArgumentOutOfRangeException:當(dāng)參數(shù)不在一個(gè)給定范圍之內(nèi)時(shí),由方法引發(fā)。
InteropException:目標(biāo)在或發(fā)生在CLR外面環(huán)境中的異常的基類。
ComException:包含COM類的HRESULT信息的異常。
SEHException:封裝Win32結(jié)構(gòu)異常處理信息的異常。
SqlException:封裝了SQL操作異常。
分享:JSP和ASP.NET存儲(chǔ)過(guò)程的對(duì)比這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)到SQL Server數(shù)據(jù)庫(kù)主鍵的遷移過(guò)程,具體內(nèi)容請(qǐng)參考下文。 由于項(xiàng)目需要要將以前Oracle的數(shù)據(jù)庫(kù)轉(zhuǎn)化為SQL Server,今天利用SQL Server的DTD進(jìn)行數(shù)據(jù)庫(kù)的遷移,但導(dǎo)入以后發(fā)現(xiàn)只導(dǎo)入了表結(jié)構(gòu)和數(shù)據(jù),而表的一些主鍵約束都沒導(dǎo)過(guò)
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-淺析ASP.Net之C#中的異常處理(2)
。