1. 程式人生 > >log.error("異常:", e);與log.error(e.getMessage());區別

log.error("異常:", e);與log.error(e.getMessage());區別

昨天接到訊息,要去海爾商城做一個CM系統,但是海爾那邊還需做一下簡單的面試,把把關。廢話不多說,討論問題:

不知道大家在正常的開發中,有沒有細心留意過這個問題,看似很小,還是能體現一個人工作上的認真程度的。

反正我是沒有做到這麼仔細.......

大家也可以寫程式碼試一試結果:

以空指標為例:

(1).log.error("異常:" + e);的列印結果為異常資訊+堆疊資訊:
異常:


(2).log.error("異常:" + e.getMessage());的列印結果為:只有異常資訊

異常:null

而且,對於異常Exception的列印,是按照底層到高層的順序來列印的。

國企的面試呢,大多數都是以基礎知識+細節為主,所以準備國企的面試,要複習好基礎知識。

從這個問題,就可以看出,我們,至少是我,在平時的工作中,只注意到了問題的表面,而沒有深入到問題的深處,就是所有開發口中的“底層”,“底層”。我也偶爾會看看一些框架的原始碼,好在與他人交流的時候,也可以喊喊“底層”,“原始碼”,其實還是我理解錯了,真正的什麼什麼語言的底層,什麼什麼框架的底層,不是說你看看原始碼,就說明你懂了,而是像這種,同樣實現了List介面的ArrayList與LinkedList內部資料結構有什麼區別啊,效能上有什麼差異啊,我們平常呼叫的方法都是怎麼實現的啊等等,至少,看原始碼應該會對你的程式碼規範,程式設計有一定的幫助,要麼說“溫故而知新”,“學而不思則罔”呢,這些總結都是有一定道理的。