zoukankan      html  css  js  c++  java
  • Java入门——day19

    一、今日学习

    Try...catch...finally...

    (1)使用try...catch...finally...语句处理异常,它捕获被命名为属于异常类的异常,并调用方法处理它,finally无论有无异常都会执行。

    (2)形式:

     1 try    //监视
     2    {
     3     可能发生异常的代码块;
     4    }
     5    catch(异常类型 异常对象名)
     6        //捕获并处理异常
     7    {
     8        异常处理代码块;
     9    }finally {
    10         //最终执行
    11    }

    (3)实例:

     

     (4)catch语句可以有多个,并且要捕获Exception,则将Exception放在最后,不能放在前面,否则会出错。即:如果要捕获多个异常,异常的范围要按照从小到大顺序叠放。

    注:finally可以省略

     (5)总结:

    • 当抛出一个异常时,异常会由相应的catch语句捕获并处理,与一个try相关的catch语句可以有多个,构成多重catch语句,异常类型决定了要执行哪个catch语句,如果没有抛出异常,try代码块就会结束,并且会跳过它的所有catch语句,从最后一个catch后面的第一个语句继续执行。

    • try语句也可以嵌入try语句,一个try代码块可以嵌入到另一个try代码块中,由于内部try代码块产生的异常如果没有被与该内部try代码块相关的catch捕获,就会传到外部try代码块。

    二、遇到问题

    使用try...catch...finally时遇到警告:finally block does not complete normally

    查找资料分析原因是:如果finally块中包含return语句,会覆盖前面的return语句(try块、catch块中的),即使前面的catch块重新抛出了异常,则调用该方法的语句也不会获得catch块重新抛出的异常,而是会得到finally块的返回值,不会捕获异常,编译器会报警告。

    三、明日学习

    Java的剩余三个抛出异常的方法

  • 相关阅读:
    Mac OSX下增加TCP连接数
    Connection reset by peer的常见原因及解决办法
    修改主机名
    docker 查看 docker容器启动 完整命令
    nginx 日志打印响应时间 request_time 和 upstream_response_time
    Ubuntu16.04 安装 Docker
    VictoriaMetrics vmagent 使用
    VictoriaMetrics vmauth 使用
    VictoriaMetrics集群模式的一些说明
    promgen prometheus 配置文件生成工具
  • 原文地址:https://www.cnblogs.com/znjy/p/13374947.html
Copyright © 2011-2022 走看看