Exception和IOException之间的使用区别
Exception和IOException之间的使用区别
先看一段代码.这段代码来自《深入剖析tomcat》
public void await() {
// 创建ServerSocket对象
InetAddress add = null;
ServerSocket ss = null;
try {
add = InetAddress.getByName(LOCAL);
ss = new ServerSocket(port, blocklog, add);
} catch (IOException e) {
e.printStackTrace();
}
// 如果URI是/SHUTDOWN说明需要关闭服务器
Socket s = null;
InputStream in = null;
OutputStream out = null;
// 进入循环,知道响应完成
while (!shutdown) {
try {
//接收socket并创建流
s = ss.accept();//只会在8080端口接收到一个HTTP请求的时候才返回
in = s.getInputStream();
out = s.getOutputStream();
// 创建Request对象并parse,获取资源uri
Request request = new Request(in);
request.parse();
// 创建Response对象并执行操作
Response response = new Response(out);
// 传入Request对象,根据getUri()获取uri地址并进行加载
response.setReqest(request);
response.sendStaticResource();
// 关闭socket,同时输入流和输出流自动关闭
s.close();
// 检查返回的URI是否是服务器关闭命令
shutdown = request.getUri().equals(SHUTDOWN_COMMAND);
} catch (Exception e) {
e.printStackTrace();
//出现异常就继续重新接收
continue;
}
}
}
在这里用的是Exception而不是IOException,这里使用Exception是为了保证捕获异常后可以继续维持JVM的运行.如果Exception换成IOException后,一旦出现IO异常,便会捕获停止运行.
下面是运行结果(Exception)
如果抛出的是IOException
明显看出后者导致JVM停止
Exception和IOException之间的使用区别的更多相关文章
- <%@page include%>、<%@include%>、<jsp:include>三者之间的本质区别
<%@page include%>.<%@include%>.<jsp:include>三者之间的本质区别 先从它的几个内置对象说起. application和se ...
- 不同版本PHP之间cURL的区别(-经验之谈)
之前在做一个采集的工具,实现采集回来的文章,图片保存起来.文章内容是保存在数据库,图片是先需要上传到图片服务器,再返回图片地址,替换掉文章的图片地址. 问题来了:都能成功采集都东西,但是,本地测试是正 ...
- Unhandled Exxception “Unhandled exception type IOException”?
Unhandled Exxception “Unhandled exception type IOException”? 在Android studio中,自动遇见这个异常报错,如果eclipse会 ...
- DIV与SPAN之间有什么区别
DIV与SPAN之间有什么区别 DIV 和 SPAN 元素最大的特点是默认都没有对元素内的对象进行任何格式化渲染.主要用于应用样式表(共同点). 两者最明显的区别在于DIV是块元素,而SPAN是行内元 ...
- 尚硅谷面试第一季-07Spring Bean的作用域之间有什么区别
目录结构: 关键性代码: beans.xml <!-- ★bean的作用域 可以通过scope属性来指定bean的作用域 -singleton:默认值.当IOC容器一创建就会创建bean的实例, ...
- AWT和Swing之间的基本区别
AWT和Swing之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快:Swing是基于AWT 的Java程序,其运行速度比较慢. 对于一个嵌入式应用来说,目标平台的硬件资源往往非 ...
- Http、Socket、WebSocket之间联系与区别
WebSocket和Socket区别 可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系. HTTP 协议有一个缺陷:通信只 ...
- spring bean 的作用域之间有什么区别
spring bean 的作用域之间有什么区别? spring容器中的bean可以分为五个范围.所有范围的名称都是说明的, 1.singleton:这种bean范围是默认的,这种范围确保不管接受到多个 ...
- java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)
java 中操作字符串都有哪些类?(未完成)它们之间有什么区别?(未完成)
随机推荐
- [Zookeeper研究]一 Zookeeper技术简介
最近的项目中使用到了Zookeeper.Kafka以及Storm.仔细研究了一下,觉得这几个开源项目对于搞分布式的人来说是非常有用的,所以想把自己的一点心得体会总结一下,希望能对大家有所帮助. 首先从 ...
- CodeForces 124B Permutations
http://codeforces.com/problemset/problem/124/B Description You are given nk-digit integers. You have ...
- jquery.sortable.js源代码解读
/* * HTML5 Sortable jQuery Plugin * http://farhadi.ir/projects/html5sortable * * Copyright 2012, Ali ...
- GUI为什么不设计为多线程(用户事件和底层事件的流程是相反的,每层都加锁效率太低,共用一把锁那就是单线程)
在我们这批新人转正评审的时候,我师父问了我的小伙伴一个问题:为什么一些更新界面的方法只能在主线程中调用?师父没有问我这个问题,让知其然但不知其所以然的我有种侥幸逃过一难的心情.我想如果回答那是因为An ...
- Spring Boot 配置优先级顺序
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- UESTC_树上的距离 2015 UESTC Training for Graph Theory<Problem E>
E - 树上的距离 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 262143/262143KB (Java/Others) Subm ...
- php使用PDO方法详解
PDO::exec:返回的是int类型,表示影响结果的条数. 复制代码 代码如下: PDOStatement::execute 返回的是boolean型,true表示执行成功,false表示执行失败, ...
- MySQL Workbench导出数据库
步骤: 1. 打开mysql workbench,进入需要导出的数据库,点击左侧栏的[Management]tab键. 2. 点选要输出的数据库 点击[Data Export] 选在要输出的数据库 选 ...
- LeetCode——Reverse Words in a String
Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...
- [每日一题] OCP1z0-047 :2013-08-18 禁用启用约束――主键与外键 ..................................61
正确答案:C 根据题意,测试结果如下: 1.创建表emp,并且设emp_no字段为主键,设mgr_no字段为外键. gyj@MYDB> create table emp 2 (emp_no nu ...