Re: [問題] 純C下的異常處理

看板C_and_CPP作者 (「雄辯是銀,沉默是金」)時間5年前發表 (2019/11/25 10:01), 5年前編輯推噓3(300)
留言3則, 3人參與, 5年前最新討論串2/2 (看更多)
※ 引述《icetofux ()》之銘言: : 2.我在三個層失敗的時候都會留下log,可是每當發生錯誤時回去讀log總覺得很冗餘 : ,比方說一但有個硬體異常引起的錯誤,我會在log中依序看到硬體驅動層的錯誤訊 : 息、協議處理層的錯誤訊息、業務邏輯層的錯誤訊息。但其實仔細想想硬體驅動層 : 一但失敗其他兩個層根本不可能會成功,這增加除錯時閱讀的難度,而且實質上浪 : 費了系統資源(記憶體、儲存媒體空間之類的),請問這部分有更好的取捨方式嗎? : 我不確定有沒有把自己疑惑的地方好好表達清楚,如果有語意不明的地方請讓我知道。 : 謝謝。 https://descent-incoming.blogspot.com/2015/09/c-c-exception-handle.html 這是使用 setjmp/longjmp 實作類似 try/catch 的功能, 這個當然比不上 c++ exception handling, c++ exception handling 會在回到上層 function 時, 檢查是不是需要呼叫物件的解構函式, 真是一個偉大又複雜的功能。 使用這個要搞懂 setjmp/longjmp 以及其侷限性, 要不然可能會發生 很難找的 bug。 不確定你的問題是不是值得使用這個。 我用在 malloc fail 時, 直接跳到錯誤處理區塊。 -- 紙上得來終覺淺,絕知此事要躬行。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 113.196.174.254 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1574676060.A.708.html

11/25 18:46, 5年前 , 1F
11/25 18:46, 1F
※ 編輯: descent (113.196.174.254 臺灣), 11/26/2019 09:01:27

11/27 02:03, 5年前 , 2F
看起來頗實用 推
11/27 02:03, 2F

12/03 23:33, 5年前 , 3F
感覺實用,可以推推看!
12/03 23:33, 3F
文章代碼(AID): #1TswPSS8 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1TswPSS8 (C_and_CPP)