java的异常处理是为了提高程序健壮性的。

当发生异常的时候,我们把这个异常捕获到,或者throw出去。然后对这些异常的情况进行处理。并且异常发生之后的代码仍然会执行,这样就能提高程序的健壮性。如下

public class Test {

    public static void main(String[] args) {

        System.out.println("start");
try {
FileInputStream fins = new FileInputStream("不存在的文件.txt");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} System.out.println("end"); } }

控制台打印信息

start
end
java.io.FileNotFoundException: 不存在的文件.txt (系统找不到指定的文件。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at com.designPattern.test.Test.main(Test.java:14)

根据控制台的打印信息,我们可以知道;虽然发生了文件不存在异常,但是之后的代码仍然执行了。也就是当程序出现某个异常的时候,我们能捕获到,进行处理,那么在用户看来程序是正确的。这样,程序的健壮性就提高了。但是,如果发生的异常与catch到的异常不匹配的时候会发生什么呢?如下

public class Test {

    public static void main(String[] args) {

        System.out.println("start");

        try {
FileInputStream fins = new FileInputStream("存在的文件.txt");
int x=2/0;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} System.out.println("end"); } }

控制台打印信息

start
Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.designPattern.test.Test.main(Test.java:15)

我们看到,发生异常之后的程序没有正常执行。那么原因是为什么呢?

因为发生的异常是 0做除数引起的 ArithmeticException 异常,而我们catch到的却是 IOException。java异常的初衷是,捕获特定的异常,当发生某个特定的异常的时候,我们进行相应的处理补救。所以,后面代码才没有执行。

而解决的方法也很简单,把 IOException 换成 Exception就可以了

最新文章

  1. VMware中linux配置2-安装jdk
  2. thinkphp 模板里a标签 href 带参数的 使用U函数方法
  3. pg强制删库
  4. SSH整合(1)异常
  5. 快速创建node应用[Express框架]
  6. Ninject学习笔记&lt;二&gt;
  7. 明风:分布式图计算的平台Spark GraphX 在淘宝的实践
  8. .net 基础错误-string.replace 方法
  9. Mysql安装后打开MySQL Command Line Client闪退解决方法
  10. ubuntu16.04搭建ftp服务器
  11. docker-compose的安装和卸载
  12. docker保存日志文件到本地
  13. [ Linux运维学习 ] 路径及实战项目合集
  14. [HDU3726]Graph and Queries
  15. Python、pywin32&amp;pycharm安装记录
  16. Python中文件编码的检测
  17. LaTeX自定义宏包、类文件的默认搜索路径设置方法
  18. Java - JavaMail - 利用 JavaMail 发邮件的 小demo
  19. Walle代码发布
  20. 团队开发NABCD

热门文章

  1. Panabit镜像功能配合wireshark抓包的方法
  2. 20180119-01-RACSignal的基础
  3. nginx下TP3.2访问页面总是404
  4. linux shell 指令
  5. 批量定时任务将rtf文件转为docx,入参是rtf文件夹,生成一个docx文件夹
  6. Center os vi
  7. 【学习笔记】可持久化并查集(BZOJ3673)
  8. 使用字符流(Writer、Reader)完成对文件的读写操作
  9. 数据库与缓存:2.Redis数据库的基本知识
  10. python关于window文件写入后,换行默认\r\n的问题