linux C 異常處理的方式

2021-07-04 01:25:13 字數 967 閱讀 1423

目前遇到這樣的問題,大概在2000多台伺服器裡面有100多多台乙個c程序掛掉了,由於公司各種的流程除錯起來非常困難。

這幾天google了下找到了一些資料,捕獲異常堆疊的,如

我有兩個疑慮:

這篇文章裡面用的不知道linux各個版本核心是否是標準支援嗎?

裡面還用到乙個命令addr2line,是否標準支援。

目前我想問問,有沒有linux c已經實現好了的try catch框架,能列印異常堆疊,最好能定位到行。

預設排序

時間排序

答案對人有幫助,有參考價值

0答案沒幫助,是錯誤的答案,答非所問

cale 2

5月14日 回答 · 5月14日 更新

用斷言#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__file__, __line__))

答案對人有幫助,有參考價值

-1答案沒幫助,是錯誤的答案,答非所問

zonxin 1k

5月11日 回答

setjmplongjmp這兩個函式可以實現類似的功能,好像是標準庫里的函式

參見

答案對人有幫助,有參考價值

-2答案沒幫助,是錯誤的答案,答非所問

franklinyang_楊 -2

5月11日 回答

啥叫c程序?你的程序可以自己打log嘛~等著c實現try catch,你有得等了~

答案對人有幫助,有參考價值

-2答案沒幫助,是錯誤的答案,答非所問

叱海凌風 -3

5月11日 回答

goto 啊 linux核心作者推薦的方式

異常處理的方式

finally是個可選的,可以不寫 使用try將可能出現異常的 包裝起來,在執行過程中,一旦出現異常,就會生成乙個對應異常類的物件,根據此物件的型別,在catch中進行匹配 一旦try中的異常物件匹配到某乙個catch時,就進入catch中進行異常的處理 處理結束後,就跳出當前的try.catch結...

異常 try catch的方式處理異常2

package cn.itcast 01 a 乙個異常,前面已經講過了 b 二個異常的處理 a 每乙個寫乙個try.catch b 寫乙個try,多個catch trycatch 異常類名 變數名 catch 異常類名 變數名 注意事項 1 能明確的盡量明確,不要用大的來處理。2 平級關係的異常誰前...

Spring 異常處理的幾種方式

目錄 1.exceptionresolver 1 defaulthandlerexceptionresolver 2 annotationmethodhandlerexceptionresolver 4 responsestatu ceptionresolver 2.spring boot增加的兩種...