zoukankan      html  css  js  c++  java
  • 这个算是编码的坏习惯吧?

    公司做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     }
  • 相关阅读:
    "alert(1) to win" writeup
    "CoolShell puzzle game" writeup
    Maximum Subarray(最大连续子序列和)
    hacking 学习站
    爬虫:备份人人网状态
    ichunqiu在线挑战--网站综合渗透实验 writeup
    ichunqiu在线挑战--我很简单,请不要欺负我 writeup
    IDF-CTF-简单的js加密 writeup
    IDF-CTF-cookie欺骗 writeup
    IDF-CTF-不难不易的js加密 writeup
  • 原文地址:https://www.cnblogs.com/xzs603/p/2878690.html
Copyright © 2011-2022 走看看