这个算是编码的坏习惯吧?
生活随笔
收集整理的這篇文章主要介紹了
这个算是编码的坏习惯吧?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
公司做HW外包,每行代碼都要經過checkstyle,重復,圈復雜度的各種考驗,而檢測工具包含篡改過的第三方,或HW的DIY。公司的同事在各種規則下,也找到了各種應對方法。
昨天發現項目一個Bug,Debug后發現如下代碼段(非原碼,僅示例)
1 public static Object errExample(byte[] bytes){ 2 Object obj = null; 3 ObjectInputStream ois; 4 try { 5 ByteArrayInputStream bis = new ByteArrayInputStream(bytes); 6 ois = new ObjectInputStream(bis); 7 obj = ois.readObject(); 8 } catch (IOException e) { 9 // Wrong, because may be subclass of IOExcption 10 Logger.getRootLogger().error("IOException is : " + "diy message."); 11 } catch (ClassNotFoundException e) { 12 Logger.getRootLogger().error("ClassNotFoundException is " + "diy message."); 13 } 14 return obj; 15 }在第10行,捕捉了非運行時異常IOException,直接手工寫了IOException,但實際項目中拋出的卻是子類EOFException。原因呢,是在Socket實現RMI時byte數組長度寫死,而實際的對象轉碼后超過門限,多余的被截去了。
所以在記錄日志時,只使用代碼應該就差不多了。
Logger.getRootLogger().error(e);因為類Throwable已經寫的夠用了。
1 public String toString() { 2 String s = getClass().getName(); 3 String message = getLocalizedMessage(); 4 return (message != null) ? (s + ": " + message) : s; 5 }?
轉載于:https://www.cnblogs.com/xzs603/archive/2013/01/27/2878690.html
總結
以上是生活随笔為你收集整理的这个算是编码的坏习惯吧?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装程序集'' policy.8.0.m
- 下一篇: 搭建主DNS服务器