zoukankan      html  css  js  c++  java
  • 异常体系

     异常的概述

    Exception,在程序中能够强制编译器来处理程序执行中的发

    生的并不是由程序本身所造成的错误。这个处理方法在java中就叫做异常捕获,

    而这些并不是程序本身产生的错误就叫做“异常”。

    基本异常

          举一个抛出异常的简单样例,对于对像引用f,传给你的时候可能没有初始化。

    那么在使用这个对象调用其方法前能够先对它进行检查。像这样:

         if(f==null)

            throws new NullPointerException();

    这就是抛出了一个异常,那么在当前环境下就不必操心这个可能出现的空指针异常了。

    它将在别的地方获得处理。

    使用异常处理机制的优点就是异常同意我们强制程序停止执行。

    并告诉我们出现了什么问题。或者强制程序处理问题,并返回稳定状态。


    异常处理程序

          假设要将抛出的异常进行恰当的处理,就得准备对应的处理程序。

    异常处理程序紧跟在try代码块之后,以keywordcatch表示:

      try{

            //要尝试执行的代码

                                       }catch(){

            //处理该异常的代码

          }

      (关于catch语句的异常类型:假设是catch语句的异常类型是CapacityToolException的父类,

    那么程序也回进入到catch语句中。)

     创建自己定义异常

    java中不可能将全部的异常考虑的面面俱到。

    所以有必要通过自己写的异常类来处理各种可能出现的异常,

    要定义异常类。必须从已有的异常类中继承,最好是选择意思相近的异常类来继承。

    Java异常的传递

         Java异常传递得出规则是;将宜昌传递给方法的调用者,

    直接被处理掉或者到达main方法,异常传递给main方法后,

    事实上就是被java平台处理掉了。

    我们知道main方法就是程序的入口。

    全部的方法调用都是从main方法開始的,所以一个异常最多也就是传递到main方法这里。

    当一个异常在方法的代码中发生的时候,方法中后面的代码都不会被运行的。

    异常的语法传递规则是:从某个方法中的某个throw语句開始,

    异常将从这种方法传递到调用这种方法的地方,并按方法调用的顺序继续传递,

    知道追出的方法。也就是main方法。

    一场必须被传递出去或者被处理掉,否则在编译源码的时候。java编译器就会输出一个语法错误。

    在程序执行的时候,假设方法的某行代码抛出了异常,那么方法之后的代码都不会执行。

    7 try-catch-finally语句

         try-catch-finally语句的语法结构规则例如以下:

            try{

           //可能发生异常的代码

           }catch(异常类型1 异常引用) {

           //异常处理代码

           }catch(异常类型2 异常引用) {

           //异常处理代码

           }

           ……

           }catch(异常类型n 异常引用) {

            //异常处理代码

           }finally{

            //finally 语句代码块

           }

    该段与try-catch语句唯一不同的就是在语句的最后,多出了一个finally块,

    这样的语句的作用是:不管语句块中的代码是否发生异常,不管是否有catch语句可

    以与异常匹配,finally语句块中的代码都会在之后运行,也就是说,这样的语法为原来的try-catch语句

    多加了一种功能,使用finally块让一段代码肯定能够被运行到。

        可是,须要说明的是,final语句并不处理异常,就是说假设一个异常没有被catch、

    语句处理掉。那么在这个异常被抛出到方法之前。会首先运行finally语句块,

    可是在finally语句运行完之后,异常还是会被抛出去。同一时候。finally语句一定会被运行,

    即使在catch语句中使用了return来结束方法,finally语句块也会被运行到。

     try-finally语句

    在java的异常处理机制中,try-finally语句严格来说并非来处理异常的。try-finally语句的语义能够被理解为:尝试执行某段代码,不管这段代码是否有return语句,不管是否发生异常,都须要在结束后执行finally语句代码。



  • 相关阅读:
    搭建了一个在线的机器学习webshell检测RESTful API
    CentOS yum 安装RabbitMQ
    python使用pika链接rabbitmq Connection reset by peer 解决办法
    docker image 转换 docker file
    破解微信某游戏
    任务型对话(一)—— NLU/SLU(意图识别和槽值填充)
    KL散度、JS散度、Wasserstein距离
    机器翻译评价指标 — BLEU算法
    文本相似度 — TF-IDF和BM25算法
    Deep Reinforcement Learning for Dialogue Generation 论文阅读
  • 原文地址:https://www.cnblogs.com/brucemengbm/p/6788846.html
Copyright © 2011-2022 走看看