一、try catch
一種報錯的捕捉機制,try塊里運行的代碼出現錯誤的時候就會去執行catch塊所以一般catch塊里都是把錯誤打印出來或者保存到log日志里;
1.1、具體使用
catch可以用()來選擇捕捉什么類型的錯誤,一般用Exception 因為Exception是所有報錯類型的基類;也可以用詳細的只捕捉特定的報錯類型這樣方便每種報錯有對應的報錯處理;在這種情況下一般就會使用多個catch捕捉不同類型的報錯;
try
{}
catch (Exception ex0)
{}
catch (Exception ex1)
{}
catch (Exception ex2)
{}
1.2、try catch finally
finally就是在try塊里不管出不出錯最后都要執行的代碼;一般用于關閉連接,清理緩存;注意也是從上到下執行的,所以在報錯的情況下會先執行catch塊再執行finally塊;
try
{
}
catch()
{}
finally
{}
二、throw
throw是一種異常拋出機制,會傳遞給最近的一個try catch(同一個方法里就傳給同一個的,沒有就傳給上一層的catch),一般不用throw直接用try catch自己直接抓;
2.1使用場景
但是比如要保存或者打印報錯但是這個方法是一個單獨的類庫里這時候就可以用throw來拋出異常,在上一層的catch里捕捉并且打印保存;
try
{}
catch (Exception ex)
{throw new Exception(”報錯“,ex);
}
2.2自定義異常
最主要的用法就是自定義異常,比如一個學生類那學生類的age年齡屬性就不能小于0,正常賦值0不會報錯就需要throw;或者例子里的amount不能<=0;(nameof方法是返回變量或者方法的名字可以知道是具體哪個值的問題;)
if (amount <= 0){throw new Exception("存款金額必須大于零。", nameof(amount));}