程式設計中的三種不同出錯的處理方式及其優缺點

2021-07-24 20:08:19 字數 1456 閱讀 2937

文章** 

在程式設計中,常用下列3種不同的出錯處理方式:

(1)用exit終止執行並報告錯誤

(2)以函式的返回值區別正確或錯誤返回

(3)設定乙個整型變數的函式引數以區別正確返回或某種錯誤返回

它們有什麼樣的優缺點呢?

第一種:用exit語句退出,是應用於發生關鍵性錯誤,比如你想開啟檔案並用於讀取或寫如時,或者動態分配記憶體空間時發生錯誤,如果不退出程式在後面對檔案描述符或者分配的記憶體使用的話會發生嚴重錯誤,於是在這種錯誤的時候就必須用exit語句退出程式.

第二種:當某個函式要完成某個特定任務,並將是否成功完成該任務的結果返回給呼叫這個函式的程式的時候,比如自己寫的乙個對socket讀寫的函式,想往 socket裡寫1000個位元組的資料,如果寫入正常則程式就執行下一不操作,如果寫入錯誤則程式要提示使用者重試,此時就需要返回不同的值來區別不同的狀 態.

第三種:用得少,通常用於該函式的執行結果對主程序沒有嚴重的影響的時候.

1)用exit語句終止執行並報告錯誤,沒有**占用的資源,但一般不會出現問題,作業系統會自動**。另外,退出地點太多不利於除錯。如果封裝乙個exit除錯函式就另當別論.

2)以函式的返回值區別正確返回或錯誤返回比較容易發現錯誤的地方,不會直接終止程式的執行.但是判斷太多,必須人工維護乙份錯誤值列表,尤其是在寫了越來越多的函式,錯誤值也越來越多的時候

3)這個應該是省去了(2)的人工維護錯誤值列表. 應該是3個方法裡比較好的吧..

1::用exit語句終止,並返回報告錯誤。致命錯誤這麼做,如果是要開啟的檔案不存在之類的錯誤就不要exit了。

2:以函式的返回值區別正確返回或錯誤返回如果你不關心為什麼出錯的話用這種

3:設定乙個整型變數的函式引數以區別正確返回或某種錯誤返回需要了解錯誤的詳細原因用這個。

exit用於程式執行下去沒有意義的時候,如果不是致命錯誤,盡量不要使用exit退出,大部 分的錯誤都應該可以用程式作出適當的處理,沒有人喜歡用乙個動不動就出錯退出的軟體。是否使用第2,3種處理方式要看在你的上下文中是否有處理這個錯誤的 足夠資訊,要看上層是否關心這個錯誤.

。。。。。。。。。。。。。。。。。。。。。。。。。。 補充      。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

增:三種輸入輸出方法的優缺點

1、通過scanf 和 printf 語句 。

2、通過函式的參數顯式傳遞。

3、通過全域性變數隱式傳遞。

通過全域性變數隱式傳遞:增加了模組之間的耦合度,但是在多執行緒環境中會產生同步性的問題。

通過函式引數顯式傳遞:實現資訊之間的傳遞的隱蔽性,較為安全。

用scanf和printf直接進行輸入輸出的好處是形象、直觀,但缺點是需要對其進行格式控制,較為煩瑣,如果出現錯誤,則會引起整個系統的崩潰。

通過scanf和printf語句與其他兩個方式不具可比性,前者是針對使用者的輸入輸出方式,後者是函式間或者模組間的資料傳遞方式,本質來說不屬於i/o範疇.

程式中三種不同的出錯處理方式比較

在程式設計中,常用下列3種不同的出錯處理方式 1 用exit終止執行並報告錯誤 2 以函式的返回值區別正確或錯誤返回 3 設定乙個整型變數的函式引數以區別正確返回或某種錯誤返回 它們有什麼樣的優缺點呢?第一種 用exit語句退出,是應用於發生關鍵性錯誤,比如你想開啟檔案並用於讀取或寫如時,或者動態分...

Session的三種處理方式

簡單來說,session就是伺服器給客戶端的乙個編號,當一台web伺服器執行時,可能 是有多個使用者都在瀏覽這台伺服器上的 當每個使用者首次與這台伺服器建立連線時,它就與這個伺服器建立了乙個session,同時伺服器就會自動為其分 配乙個sessionid,用以標識這個使用者的唯一身分,這個sess...

三種不同的分頁方式

習慣了ext的ext.grid.gridpanel與ext.data.store封裝好了的分頁方式以及 ajax處理方式 ext.ajax.request success function response,action 和對後台響應json的處理 ext.ajax.request success ...