背景:微服務,單元化架構中,開發語言是 Java
場景:
1 、服務之間存在多種調用,服務 A->服務 B->服務 C ;
2 、每一個服務都有對應的錯誤碼編號;服務 A:000 ~ 099 ,服務 B:100 ~ 199 ,服務 C:200 ~ 299 ;
3 、x99 爲各個服務的未知異常。
問題:服務 C 如果發生了 RuntimeException 時,但是服務 C 的開發同學沒有考慮到異常情況,服務 C 直接拋出了該異常,這時系統該如何優雅的通知調用方最爲合適呢?
方案:
1 、服務 C 利用框架的擴展能力,將錯誤碼修改爲服務 C 的錯誤碼 399 ,拋出給調用系統;
2 、服務 A 在返回給調用方前,判讀異常是否爲可識別的異常(包含錯誤碼的異常);否則進行包裝,返回錯誤碼 099 。
思考: