輸入的不是數字怎麼辦

2022-04-04 12:51:22 字數 1237 閱讀 5904

如果使用者輸入的不是數字。那麼

int yournumber = int.parse(number);

就會拋乙個system.formatexception的異常,導致程式意外終止。

跟c++一樣,我們可以捕捉住異常進行處理。

try

catch (formatexception e)

c#的異常類都是繼承自system.exception的。如果想大小通吃,我們也可以catch(exception e)。

system.exception有幾個重要的屬性,可以幫助了解異常的更多資訊。

system.exception.message 獲取異常的描述字串

system.exception.stacktrack 獲取異常的棧呼叫字串

system.exception.targetsite 獲取引發異常的方法的資訊。

system.exception.data 如果你想要在異常中增加額外資訊,就需要data了。

那我們再試一下

try

catch (formatexception e)

",e.message);

console.writeline("stack: ", e.stacktrace);

console.writeline("target: ", e.targetsite.name);//targetsite不是乙個字串,是乙個物件例項

return;

}

c#的異常處理還多了乙個finally塊。放在catch塊後。無論異常是否被觸發,finally塊中的內容始終都會被執行。

try

catch (formatexception e)

", e.message);

console.writeline("stack: ", e.stacktrace);

console.writeline("target: ", e.targetsite.name);//targetsite不是乙個字串,是乙個物件例項

return;

}finally

當然,在實際程式設計中,我們往往會定義自己的異常類,拋出自定義的異常

throw

new 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作業系統裡面輸入一些命令把他這個檔案給修復了,目前是你進不了做麵,那最好的辦法還只能是重灌系統了。如果說你不想重灌系統的話,那咱們先抱著乙個僥倖的心理,先用一些...