zoukankan      html  css  js  c++  java
  • 20130617—认识异常

    1.异常是什么?

      异常简单而言就是一种指令流,什么指令流让程序中断的指令流。合起来:异常是一种让程序中断的指令流。在正常情况下,如果没有处理,那么程序在出现异常的情况下,程序将中断执行,退出程序。

    2.既然有异常那么该如何处理。

      通常而言,对异常的处理均采用的方法为try---catch---finally 的搭配完成。try 用于捕获异常,catch用于匹配异常,finally程序的最终出口。当程序某个地方可能出现异常时,通过采用try去捕获异常,如果有异常则try异 常下的语句不在执行,到catch处去匹配异常进行处理,如果有finally则最终出口执行以下,但整个程序不会出现中断,会完整的执行完毕,并将异常 打印出来,或者记录日志。

    3.异常的处理流程

       异常出现后具体的处理流程是怎样进行的呢?首先让我们认识一下大体的异常:

    java.lang.Object
      java.lang.Throwable
          java.lang.Exception
              java.lang.RuntimeException
                  java.lang.ArithmeticException

        从上面可以看出,异常的最大父类为Throwable,那么我们在看下Throwable:

      

    java.lang.Object
      

    继承者

    java.lang.Throwable
    
    所有已实现的接口:
    Serializable
    直接已知子类:
    Error, Exception
      可以看出其下又两个子类分别为:Error,Exception
      Error:JVM产生的错误,即:程序还没有运行时候产生的错误,用户无法去处理。
      Exception:表示程序运行时候产生的异常,用户是可以进行处理的。
      一般而言,所指的异常通常都是Exception的子类,因此可以对异常进行向上转型,来建立自己的异常类型,异常处理流程如下图所示:
     
    程序在发生异常的时候会产生一个异常类的实例化对象,由JVM产生的,然后将这个实例化对象与catch中的实力对象进行匹配,catch就可以当做一个方法,然后传递了一个引用对象为异常类实例化对象然后看是否instanceof匹配与否。
    4。注意:
       (1)异常的捕获通常要细分匹配异常,不能统一用Exception来捕获,必须细分异常,指定什么样的异常,是ArithmeticException 还是其它的,必须细分。。。
        (2)异常在细分后,在catch进行异常匹配的时候,注意了,必须是范围由小到大的,比如说Exception是普通异常的父类,则应该放到最后去。
    今天就到这里了,不早了,明天还得上班,明天在继续学习。
                  为了梦想,努力奋斗!
  • 相关阅读:
    大话位运算
    Docker部署jar包
    linux系统备份mysql数据库
    关于Centos7 firewalld防火墙开放端口后仍不能访问ftp和nginx的问题解决
    MySql查询当天、本周、本月、本季度、本年的数据
    c#模拟线性回归
    监控服务器配置(五)-----Redis_exporter安装配置
    监控服务器配置(二)-----Grafana安装配置
    监控服务器配置(三)-----Node_exporter安装配置
    js网页唤起支付宝进行支付
  • 原文地址:https://www.cnblogs.com/pony1223/p/3141384.html
Copyright © 2011-2022 走看看