zoukankan      html  css  js  c++  java
  • Exception和IOException之间的使用区别

    Exception和IOException之间的使用区别

    先看一段代码.这段代码来自《深入剖析tomcat》

     
     1 public void await() {
     2     // 创建ServerSocket对象
     3     InetAddress add = null;
     4     ServerSocket ss = null;
     5     try {
     6         add = InetAddress.getByName(LOCAL);
     7         ss = new ServerSocket(port, blocklog, add);
     8     } catch (IOException e) {
     9         e.printStackTrace();
    10     }
    11     // 如果URI是/SHUTDOWN说明需要关闭服务器
    12     Socket s = null;
    13     InputStream in = null;
    14     OutputStream out = null;
    15     // 进入循环,知道响应完成
    16     while (!shutdown) {
    17         try {
    18             //接收socket并创建流
    19             s = ss.accept();//只会在8080端口接收到一个HTTP请求的时候才返回
    20             in = s.getInputStream();
    21             out = s.getOutputStream();
    22             // 创建Request对象并parse,获取资源uri
    23             Request request = new Request(in);
    24             request.parse();
    25             // 创建Response对象并执行操作
    26             Response response = new Response(out);
    27             // 传入Request对象,根据getUri()获取uri地址并进行加载
    28             response.setReqest(request);
    29             response.sendStaticResource();
    30             // 关闭socket,同时输入流和输出流自动关闭
    31             s.close();
    32             // 检查返回的URI是否是服务器关闭命令
    33             shutdown = request.getUri().equals(SHUTDOWN_COMMAND);
    34         } catch (Exception e) {
    35             e.printStackTrace();
    36             //出现异常就继续重新接收
    37             continue;
    38         }
    39     }  
    40 }

    在这里用的是Exception而不是IOException,这里使用Exception是为了保证捕获异常后可以继续维持JVM的运行.如果Exception换成IOException后,一旦出现IO异常,便会捕获停止运行.


    下面是运行结果(Exception)

    如果抛出的是IOException

      
    明显看出后者导致JVM停止

  • 相关阅读:
    hihocoder 1388 Periodic Signal
    HDU 5880 Family View (AC自动机)
    HDU 5889 Barricade (bfs + 最小割)
    UVa 10806 Dijkstra, Dijkstra (最小费用流)
    POJ 3169 Layout (差分约束)
    差分约束系统学习
    HDU 3062 病毒侵袭持续中 (AC自动机)
    HDU 2896 病毒侵袭 (AC自动机)
    HDU 2222 Keywords Search (AC自动机)
    项目管理工具Leangoo,截止日期终于变绿色了
  • 原文地址:https://www.cnblogs.com/sunnysola/p/4927863.html
Copyright © 2011-2022 走看看