語法上沒有錯誤,在程式執行的過程當中,由於某些原因程式出現了錯誤,不能再正常的執行。
在寫程式的過程中會經常出現各種各樣的異常,如果想要程式繼續執行,在**中應該經常性的使用 try-catch 來進行異常捕獲。
執行過程:如果 try 中的**沒有出現異常,那麼 catch 中的**不會執行。如果 try 中的**出現了異常,那麼這行出現異常的**後面還有**都不會執行了,而是直接跳到 catch 中執行**。
下面圖中的** int number = convert.toint32(console.readline());有乙個異常。
捕獲異常:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 高山異常捕獲
catch
console.writeline(++number);
console.readkey();}}
}
輸出結果:
那麼問題來了:
為什麼把字段 number 另外宣告還要賦值初值呢 ? 為什麼輸出後面還有乙個0呢 ? 當我們捕獲異常時由於後面我們要操作字段(作用域問題)並且未賦初值的字段不能使用,所以要先宣告一下欄位並賦初值,輸出 catch 語句後還輸出了乙個 0 ,是因為 catch 裡面的語句結束後會繼續執行下面的語句。
在實際開發中往往我們想要的結果並不是這樣的,而是當執行成功時我們要執行一些邏輯或其它**,當執行失敗時就要告知我們的使用者一些資訊。
那麼該怎麼解決呢?兩種方法。
1.直接將執行成功時要執行的**直接寫在 try 中。(不建議)
2.定義乙個 bool 值,當執行成功時 true ,當執行失敗時 false,在下面判斷為 true 時執行要執行的**。(建議使用)
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace 高山異常捕獲
C 異常捕獲知識點總結
首先來回顧一下在c語言中我們遇到類似異常的問題時候是如何處理的 c語言處理錯誤的方式?1.assert直接終止 2.使用errno返回錯誤碼 可以在網上查詢錯誤碼庫然後檢視錯誤資訊 3.c標準庫setjmp longjmp 這個我沒用過,搬書的,好像現在不怎麼用了 c 中異常的處理用到的三個關鍵字函...
C 基礎知識點
1.單行注釋 多用於給變數注釋 2.多行注釋 多用於大段文字注釋 3.文件注釋 多用於給類和方法注釋 只能以字母 或者 符號開頭。開頭暫時不要用,它們有自己特殊的意義 後面可以跟任意的字母數字下劃線 命名法 1 camelclass駝峰命名法 變數名首單詞的首字母小寫,其餘的每個單詞的首字母大寫eg...
C 基礎知識點
主要包含c 常用語句 語言特徵 物件導向程式設計基礎 集合和索引。c 常用語句 物件導向程式設計基礎 高階程式設計 多重介面實現,c 不允許多重類繼承,但c 允許多重介面實現,定義時基類必須在介面之前,如 public class mobile phone,iusb,ibluetooth publi...