本帖最后由 张飞年 于 2012-9-26 00:21 编辑
今天在写一个完整的聊天程度的时候碰到一个问题,想好半天不知原因到底是不是这样,发上来大家一起注意下,知道的大虾说说自己意见
这是正确的格式(不报错):- ServerSocket ss = null;
- try {
- ss = new ServerSocket(10008);// 创建服务端
- } catch (BindException e) {
- System.out.println("端口忆经被占用");
- } catch (IOException e) {
- }
- //或者
- ServerSocket ss = null;
- try {
- ss = new ServerSocket(10008);// 创建服务端
- } catch (IOException e) {
- System.out.println("端口忆经被占用");
- }
复制代码 这样子就会出现错误:- ServerSocket ss = null;
- try {
- ss = new ServerSocket(10008);// 这里会出错,让再加一个catch或者try-catch
- } catch (BindException e) {
- System.out.println("端口忆经被占用");
- }
复制代码 我想这里的原因是不是因为BindException是IOException的子类的缘故,这创建端口的过程中不光可能发生端口占用异常还有可能发生IO异常,所以try了该产生服务端口的语句后只处理Io就没事,而只处理了端口占用异常就把IO异常给拉下了没处理,是 不是这样?
|
|