C 語言不提供對錯誤處理的直接支持,但是作為一種系統編程語言,它以回傳值的形式允許您訪問底層資料,在發生錯誤時,大多數的 C 或 UNIX 函式呼叫回傳 1 或 NULL,同時會設定一個錯誤代碼 errno,該錯誤代碼是全域變數,表示在函式呼叫期間發生了錯誤,您可以在 頭檔案中找到各種各樣的錯誤代碼,
所以,C 程式員可以通過檢查回傳值,然后根據回傳值決定采取哪種適當的動作,開發人員應該在程式初始化時,把 errno 設定為 0,這是一種良好的編程習慣,0 值表示程式中沒有錯誤,
errno、perror() 和 strerror()
C 語言提供了 perror() 和 strerror() 函式來顯示與 errno 相關的文本訊息,
perror() 函式顯示您傳給它的字串,后跟一個冒號、一個空格和當前 errno 值的文本表示形式,
strerror() 函式,回傳一個指標,指標指向當前 errno 值的文本表示形式,
讓我們來模擬一種錯誤情況,嘗試打開一個不存在的檔案,您可以使用多種方式來輸出錯誤訊息,在這里我們使用函式來演示用法,另外有一點需要注意,您應該使用 stderr 檔案流來輸出所有的錯誤,

當上面的代碼被編譯和執行時,它會產生下列結果:

被零除的錯誤
在進行除法運算時,不檢查除數是否為零,這是程式員編程時常見的問題,會導致一個運行時錯誤,
如果你也想成為程式員,想要快速掌握編程,趕緊關注小編加入學習企鵝圈子吧!
里面有資深專業軟體開發工程師,在線解答你的所有疑惑~編程語言入門“so easy”
資料包含:編程入門、游戲編程、課程設計等,
免費學習書籍:

免費學習資料:

為了避免這種情況發生,下面的代碼在進行處罰運算前會先檢查除數是否為零:

當上面的代碼被編譯和執行時,它會產生下列結果:

程式退出狀態
通常情況下,程式成功執行完一個操作正常退出的時候會帶有值 EXIT_SUCCESS,在這里,EXIT_SUCCESS 是宏,它被定義為 0,
如果程式中存在一種錯誤情況,當您退出程式時,會帶有狀態值 EXIT_FAILURE,被定義為 -1,所以,上面的程式可以寫成:

當上面的代碼被編譯和執行時,它會產生下列結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/240742.html
標籤:C
下一篇:鏈表調通
