日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

黑马程序员-异常介绍与处理

發(fā)布時間:2025/3/19 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 黑马程序员-异常介绍与处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

---------------------- ASP.Net+Android+IOS開發(fā)、.Net培訓、期待與您交流! ----------------------

?

? 1、? 什么是異常?

???1、程序運行時發(fā)生的錯誤。(錯誤的出現(xiàn)并不總是程序員的原因,有時應用程序會因為最終用戶或運行代碼的環(huán)境改變而發(fā)生錯誤。比如:1、連接數(shù)據(jù)庫時服務器停電了;2、操作文件時文件沒了、權(quán)限不足等;3、計算器用戶輸入的被除數(shù)是0;4、使用對象時對象為null;等等)

??? 2、.net為我們把“發(fā)現(xiàn)錯誤(try)”的代碼與“處理錯誤(catch)”的代碼分離開來。

2、異常處理的一般代碼模式:

?? 1、try{…可能發(fā)生異常的代碼…} catch{…對異常的處理…} finally{…無論是否發(fā)生異常、是否捕獲異常都會執(zhí)行的代碼…}

?? 2、try塊:可能出問題的代碼。當遇到異常時,后續(xù)代碼不執(zhí)行。

?? 3、catch塊:對異常的處理。記錄日志(log4net),繼續(xù)向上拋出等操作。(只有發(fā)生了異常,才會執(zhí)行。)

?? 4、finally塊:代碼清理、資源釋放等。無論是否發(fā)生異常都會執(zhí)行。

3、案例:int x=5;int y=0;int z=x/y; 程序運行時出錯,后續(xù)的內(nèi)容無法運行。

4、程序一旦有一個功能發(fā)生異常,整個程序崩潰其他功能也無法正常運行。

5、? 錯誤的幾種形式:

1、? ?語法錯誤:語法錯誤一般編譯器會幫我們解決。

2、? ?邏輯錯誤:編譯沒問題,執(zhí)行不報異常,就是結(jié)果不對。

3、異常:在運行時發(fā)生的錯誤,異常一般會導致程序崩潰。

A、 空指針異常:未將對象引用設置到對象的實例。

Person? p=new Person();

P=null;

p.Name=”yzk”;

Console.WriteLine(P.Name);

Console.ReadKey();

B、 試圖除以零異常:除數(shù)不能為0。

Int n=10;

Int m=0;

Int sum=n/m;

Console.WriteLine(sum);

Console.Readkey();

C、 輸入字符串的格式不正常

string str=”abcd”;

int n=Convert.ToInt32(str);

Console.WriteLine(n);

Console.ReadKey();

6、? catch塊的三種寫法

A、 第一種寫法,這種寫法可以捕獲所有的異常。

Catch

{

?? Console.WriteLine(“異常了。”);

}

B、 第二種寫法,如果參數(shù)類型是:Exception,表示可以捕獲所有的異常。

catch(Exception ex)

{

???? Console.WriteLine(“異常了。{0}”,ex.Message);

}

C、 第三種寫法:根據(jù)參數(shù)類型的不同,可以捕獲不同的異常。如參數(shù)類型是:NullReferenceException,表示只能捕獲空指針異常。

Catch(NullReferenceException? ex)

{

???? Console.WriteLine(“異常了。{0}”,ex.Message);

}

注:捕獲所有異常的catch不能寫在具體異常前面。

Exception類是所有異常類的祖宗類。

7、? 異常處理代碼的其他幾種形式:

A、 try->多個catch->一個finally

B、 try->(1個或多個catch),多個catch的順序問題。沒有finally。

C、 try->finally(只能有一個),沒有catch也可以。

注意點:

A、 發(fā)生異常后,try塊中,異常代碼后的代碼不會執(zhí)行。

B、 finally塊中的代碼,無論是否發(fā)生異常都會執(zhí)行。

C、 finally中不能寫return語句。

D、 try中有return語句,finally也會執(zhí)行。

E、? 即便沒有catch,finally中的代碼也會執(zhí)行,但finally之后的代碼則不會。

8、? Exception ex異常也是對象,封裝了異常發(fā)生時的一些信息。

9、? Exception類主要屬性:Message、StackTrace、InnerException

10、?扔出自己的異常,扔:throw。抓住:catch

建議:通過邏輯判斷(if-else)減少異常發(fā)生的可能性。

--------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS開發(fā)</a>、<a href="http://edu.csdn.net"target="blank">.Net培訓</a>、期待與您交流! ----------------------

詳細請查看:<a href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>

?

---------------------- ASP.Net+Android+IOS開發(fā)、.Net培訓、期待與您交流! ----------------------

轉(zhuǎn)載于:https://www.cnblogs.com/zxh930508/p/3544405.html

總結(jié)

以上是生活随笔為你收集整理的黑马程序员-异常介绍与处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。