一个叫Prashant Deva的人发现在Java 5.0的java.io.PrintStream中有这样一段代码:protected void setError() {
  trouble = true;  try {   throw new IOException();} catch (IOException x) {}
}        注意这段代码中 try...catch 除了空耗系统资源之外毫无意义。这样的代码隐藏在系统底层,频频使用,还伴随我们这么久,未免让人啼笑皆非。善意的猜测是,某位程序员本想在try block添加一些代码,于是先写下这些stub,之后居然忘了,留下笑柄。恶意的揣度则完全是一场逃脱了code review的恶作剧。        不过我手上并没有Java 5.0,而在Java 6.0的source中,我看到这个恶作剧已经被清除。        看来Java的io不仅仅是花哨而已呢!
转http://blog.csdn.net/myan/archive/2007/01/23/1491630.aspx

解决方案 »

  1.   

    CSDN的N多“专家”就为了骗点击率,
    没事做了,到外网翻译篇无聊的E文,放到CSDN头版拿全国人民开心。
    注意这段代码中 try...catch 除了空耗系统资源之外毫无意义
    =========================================================
    空耗多少资源???一点class文件格式的知识都没有!在那空喊!无知!还伴随我们这么久
    ==================
    你去看看1.4的source中有吗?
      

  2.   

    /**
         * Set the error state of the stream to <code>true</code>.
         *
         * @since JDK1.1
         */
        protected void setError() {
    trouble = true;
        }