異常捕獲不到的一次問題記錄

2021-09-28 21:56:02 字數 607 閱讀 2046

想起來之前做的乙個檔案轉pdf系統,這個系統我們的設計優先使用a轉換器,一旦a轉換器出現異常然後再使用b轉換器,或者c轉換器。

前提:捕獲到a轉換器的異常。

當時採用的

try  catch (exception e)
這種方式去捕獲異常,後來一次線上出現了乙個bug,檔案使用a轉換,轉換失敗了但是轉換系統直接終止了,也沒有選擇其他轉換工具轉換,這個問題很奇怪。後來懷疑是異常的問題。

附上一張網上找的異常體系圖

exception體系下分為受檢異常和執行異常,受檢異常必須經過處理,執行時異常程式直接終止執行。但是這都屬於exception子類

在catch裡面使用exception沒問題,可以捕獲到,但是一旦程式發生了error異常,這個就捕獲不到了。

處理方法:

將異常捕獲機制改為如下方式:

try  catch (throwable e)
異常接受採用更高階的throwable進行接收。這樣就可以捕獲到異常。成功解決問題。

一次奇葩Hama問題記錄

對hama進行改進,引用了乙個類a a繼承了執行緒類 當該類實現如下時,graphjobrunner 中 override public final void setup bsppeerpeer throws ioexception,syncexception,interruptedexceptio...

一次線上oom問題記錄

某天早上發現服務無法正常訪問,於是展開問題排查。1。首先檢視日誌,發現有oom日誌存在。這時候看到oom,犯了想當然的錯誤,認為是記憶體不足,堆記憶體空間已經用完。於是檢視 發現某個模組中有如下 誰寫的,站出來,我保證不打你。當時盲目的認為就是使用這個執行緒池的問題 關於此執行緒池的弊端不再贅述 於...

一次線上FullGC問題記錄

標題採自 英雄聯盟 瑞文 斷劍重鑄之日,騎士歸來之時!前兩天早上在擠地鐵的時候看到小組群裡,主管發了好多訊息,開啟來一看,說是xx專案自從22號發版後,每天晚上就瘋狂full gc,讓我們查一下什麼原因,嘻嘻嘻,一開始聽到,心裡竊喜,為什麼呢。因為自己以前對jvm也有些了解,不過都只是紙上談兵罷了。...