轉:
log.error("異常:", e);與log.error(e.getMessage());區別
版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Soongp/article/details/70911198
昨天接到消息,要去海爾商城做一個CM系統,但是海爾那邊還需做一下簡單的面試,把把關。廢話不多說,討論問題:
不知道大家在正常的開發中,有沒有細心留意過這個問題,看似很小,還是能體現一個人工作上的認真程度的。
反正我是沒有做到這么仔細.......
大家也可以寫代碼試一試結果:
以空指針為例:
(1).log.error("異常:" + e);的打印結果為異常信息+堆棧信息:
異常:
(2).log.error("異常:" + e.getMessage());的打印結果為:只有異常信息
異常:null
而且,對於異常Exception的打印,是按照底層到高層的順序來打印的。
國企的面試呢,大多數都是以基礎知識+細節為主,所以准備國企的面試,要復習好基礎知識。
從這個問題,就可以看出,我們,至少是我,在平時的工作中,只注意到了問題的表面,而沒有深入到問題的深處,就是所有開發口中的“底層”,“底層”。我也偶爾會看看一些框架的源碼,好在與他人交流的時候,也可以喊喊“底層”,“源碼”,其實還是我理解錯了,真正的什么什么語言的底層,什么什么框架的底層,不是說你看看源碼,就說明你懂了,而是像這種,同樣實現了List接口的ArrayList與LinkedList內部數據結構有什么區別啊,性能上有什么差異啊,我們平常調用的方法都是怎么實現的啊等等,至少,看源碼應該會對你的代碼規范,程序設計有一定的幫助,要么說“溫故而知新”,“學而不思則罔”呢,這些總結都是有一定道理的。