首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于错误的疑问?

2012-01-20 
关于异常的疑问??????代码如下:-----------------try{......}catch(java.net.SocketExceptionse){System.o

关于异常的疑问??????
代码如下:
-----------------
                try
                {
......
                }   catch   (java.net.SocketException   se)
                {
                        System.out.println( "SectionPicture:27: "   +   se.getMessage());
                }   catch   (Exception   exception)
                {
                        System.out.println( "SectionPicture:30: "   +   exception.getMessage());
                        exception.printStackTrace();
                }

显示出异常如下:
----------------
SectionPicture:30:null
ClientAbortException:     java.net.SocketException:   Connection   reset   by   peer:   socke
t   write   error
                at   org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffe
r.java:366)
                at   org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:353)
                at   org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.ja
va:392)
                at   org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:38
1)
                at   org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputSt
ream.java:88)
                at   org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputSt
ream.java:82)
....

我的主为,应该显示
SectionPicture:27   ....

为什么,java.net.SocketException未能捕捉到ClientAbortException:     java.net.SocketException:   Connection   reset   by   peer:   socke
t   write   error

[解决办法]
catch (java.net.SocketException se)
改为
catch (SocketException se)
试试
[解决办法]
ClientAbortException是什么东西?没有用过
也许ClientAbortException封装了SocketException,TRY块中抛的异常是ClientAbortException,ClientAbortException不是SocketException的子类(或许是父类,又或许聚合了SocketException),所以才无法CATCH SocketException
你试一下,catch (java.net.ClientAbortException e)就能捕到



[解决办法]
ClientAbortException 这是客户端中断了输出流,如下载文件的中途关闭窗口,就会报这个异常,或者页面还没有显示出来,客户端刷新页面也会报这个错误
[解决办法]
学习
[解决办法]
学习
[解决办法]
e.getClass().getName()
看看究竟是什么异常

热点排行