如果使用者輸入的不是數字。那麼
int yournumber = int.parse(number);
就會拋乙個system.formatexception的異常,導致程式意外終止。
跟c++一樣,我們可以捕捉住異常進行處理。
trycatch (formatexception e)
c#的異常類都是繼承自system.exception的。如果想大小通吃,我們也可以catch(exception e)。
system.exception有幾個重要的屬性,可以幫助了解異常的更多資訊。
system.exception.message 獲取異常的描述字串
system.exception.stacktrack 獲取異常的棧呼叫字串
system.exception.targetsite 獲取引發異常的方法的資訊。
system.exception.data 如果你想要在異常中增加額外資訊,就需要data了。
那我們再試一下
trycatch (formatexception e)
",e.message);
console.writeline("stack: ", e.stacktrace);
console.writeline("target: ", e.targetsite.name);//targetsite不是乙個字串,是乙個物件例項
return;
}
c#的異常處理還多了乙個finally塊。放在catch塊後。無論異常是否被觸發,finally塊中的內容始終都會被執行。
trycatch (formatexception e)
", e.message);
console.writeline("stack: ", e.stacktrace);
console.writeline("target: ", e.targetsite.name);//targetsite不是乙個字串,是乙個物件例項
return;
}finally
當然,在實際程式設計中,我們往往會定義自己的異常類,拋出自定義的異常
thrownew myexception("i am an exception");
這樣做最主要的還是想把異常進行歸類,方便處理。
怎麼辦,怎麼辦?
我在一家軟體公司做程式設計師,也有一年多,我是做.net方向的,公司活還可以,就是工資給的少。本來想在工作半年的時候提出加薪的要求,可事事難料啊?就在我剛要開口的時候公司發生了變動。收購 我公司被乙個集團收購了,在收購的這段期間我們公司真是損兵折將啊,走了一大批人,其中包括我們原來的專案經理。這樣一...
mysql 怎麼辦 mysql 密碼忘記怎麼辦
一 若資料庫是初次登陸 linux系統給資料庫生成了乙個原始密碼在檔案 var log mysqld.log中 grep temporary password var log mysqld.log 找到原始密碼 登陸 mysql uroot p 你找到的密碼 mysql set global val...
電腦怎麼辦?
你好可以很明顯的看出來,這就是因為系統檔案它損壞導致不能開機的。而且很關鍵的是你這個進入不了桌面,因為如果說能進入桌面的話,咱們可以在dos作業系統裡面輸入一些命令把他這個檔案給修復了,目前是你進不了做麵,那最好的辦法還只能是重灌系統了。如果說你不想重灌系統的話,那咱們先抱著乙個僥倖的心理,先用一些...