zoukankan      html  css  js  c++  java
  • JAVA异常处理机制

    Thorwable类是所有异常和错误的超类

    2.error是程序无法处理的错误
    此类错误一旦发生,JVM虚拟机一般会选择终止线程

    exception是程序自身可处理的异常
    这种异常分为两大类——运行时异常和非运行时异常

    3.运行时异常和非运行时异常

    运行时异常都是RuntimeException类及其子类异常.
    这些异常必须自定义捕抓 此类异常是可以有选择的处理

    非运行时异常是RuntimeException意外的异常,类型上都属于Exception类及其子类
    此类异常一旦出现,如果不处理,程序将无法编译通过
    该类异常一般情况下由系统检查出来

    二、异常的捕抓和处理
    JAVA异常处理涉及到五个关键字:
    try
    catch
    finally
    throw
    throws
    1、 异常处理的基本语法 在java中,异常处理的完整语法是: try{ //(尝试运行的)程序代码 }catch(异常类型 异常的变量名){ //异常处理代码 }finally{ //异常发生,方法返回之前,总是要执行的代码 }
    2、catch语句后代Throwable类型的参数 表示可以捕抓异常类型
    3、catch语句可以有多个,用于匹配异常 一旦匹配上后 就不再与其他catch匹配
    4、通常异常推向可以获取异常发生时完整的JVM堆栈信心,以及异常信息和异常发生的原因等
    5、finally语句块是紧跟catch语句后的语句块,这个语句块总是会在方法返回前执行,而不管是否try语句是否发生异常
    而这个语句块总是在方法返回前执行 其目的和作用就是给程序一个补救的机会 这样又体现出JAVA的健壮性
    6、try catch finally 都不能单独使用
    7、finally只能有一个 catch可以有多个
    8、try catch finally 变量作用域都只在其代码块的内部 分别独立而不能互相访问
    想在不同代码块中使用 必须要定义全局变量说
    9、在多个catch的情况下,JAVA只会匹配其中一个 匹配顺序从上到下
    10、所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常


    throw和throws
    1.throw是用于方法体内部,用来抛出一个throwable类型的异常
    如果抛出的是检查异常,则还应该在方法头部声明方法可能抛出的异常类型
    该方法的调用者也必须检查处理所抛出的异常 如果所有方法都层次上抛获取到的异常 最近JVM会进行处理 打印出异常消息和所在的堆栈信息


    1、throws出现在方法函数头;而throw出现在函数体。
    2、throws表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某种异常。
    3、两者都是消极处理异常的方式(这里的消极并不是说这种方式不好),只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

  • 相关阅读:
    mybatis整合redis二级缓存
    python字符串非空判断
    mybatis源码分析之05一级缓存
    mybatis框架之动态代理
    Redis事件通知示例
    springboot2集成redis5报错:io.lettuce.core.RedisException: io.lettuce.core.RedisConnectionException: DENIED Redis is running in protected
    Centos7关闭防火墙
    mybatis源码分析之04Mapper接口的动态代理
    mybatis源码分析之03SqlSession的创建
    mybatis源码分析之02配置文件解析
  • 原文地址:https://www.cnblogs.com/ysbl/p/3465036.html
Copyright © 2011-2022 走看看