本段代码是客户端的一小段程序,主要是读取服务器端的消息。问题:如果关闭了服务器,想捕获这个异常
(SocketException se),但想同时捕获两个异常时有些疑问?
- Java code
boolean b=true; while(b){ try { str=dis.readUTF(); ta.append(str); if(s.equals("服务器:exit\n")) break; }[b] catch (SocketException se) { [color=#FF0000]//如果两个异常调换位置,怎么出错了???[/color] System.out.println("服务器端已关闭"); b=false; } catch (IOException e){ e.printStackTrace(); }[/b] } try { ta.append("服务器端终止连接,请退出程序!!!"); dos.close(); dis.close(); s.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } });
------解决方案--------------------
SocketException是IOException的子类,如果先写IOException自然就不会进入到ScoketException了。