• java公开课-04-异常


    一.异常的概念:

      程序在运行时,发生了我们没有预测的情况,它阻止了程序按照我们预期效果执行!

    二.所有异常和错误的父类--(Throwable)

      Throwable类是Java异常类型的顶层父类,一个对象只有是Throwable类的()直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别.JDK中內建了一些常用的异常类,我们          也可以自定义异常.

      1.Excetion--异常

        (1).运行时异常(RuntimeExction):在程序运行期间产生的异常.

          01:ArithmeticException--数学异常

          02:InputMismatchException--输入类型不匹配异常

          03:NullPointException--空指针异常.

        (2).受查异常(checked Excetion):在程序编译期间产生的异常.

          01:IOException--.IO异常

          02:EOFException--.意外获取文件尾端,获取失败

          03:FileNotFoundException--文件不存在异常

          04:ClassNotFoundException--类不存在异常.

      2.Error--错误

        (1):VirtualMachineError.

          01:OutOMemoryError

          02:StactOverFlowError.

        (2):AWTError:

    三.try..catch..finally

      1.try的使用

        (1):try代码块不能单独使用,必须和catch或者finally中的一个一起使用.

        (2):可能发生异常的代码.

        (3):如果try代码块中不发生异常,有finally的情况下,先执行finally,之后执行finally之后的代码.

          如果try代码块中发生异常,先去catch中匹配异常,如果匹配成功,执行对应的catch.

          否则执行finally,然后程序终止!!!

      2.catch的使用

        (1):每一个catch代码块都是用于捕获并处理一个特定的异常或者是这个异常的子类!

        (2):catch(ArithmeticException ex)定义了异常类型

        (3):可以同时出现多个,但是不能重复

        (4):多个catch代码块中的异常类型书写顺序必须是从小到大

        (5):我们的异常会从多个catch代码块中找到一个最先匹配的,然后交给这个代码块处理

        (6):每个catch代码块中的变量都是独立的,别的代码块不能访问.

        (7):如果所有的catch代码块都不匹配,先去执行finally,之后终止程序.

        (8):如果try中没有发生异常,则所有的catch块被匹配.

        (9):java1.7的版本中支持多个异常声明在一个catch中.

      3.finally的使用:

        (1):无论发生什么异常,finally都会执行

        (2)如果try中没有异常,但是有return,这时候会先执行finally之后执行return.

        (3)如果代码中出现System.exit(int status),那么不会执行finally

          System,exit(0),正常退出.

          System.exit(非0):非正常退出.

        (4)做一些程序的清理工作,关闭流,释放数据库的连接.

    四:throw throws

      1:throw

        (1)抛出的异常类型可以是Exception或者其子类!

        (2)一条throw语句只能抛出一个异常对象.

        (3)throw只能出现在方法体内

        (4)对于throw抛出的异常我们有两种处理方式.

          01:try..catch..finally

          02.throws

      2.throws

        (1)throws声明在方法的名称之后.

        (2)throws可以声明多个,每个异常之间使用逗号隔开,

        (3)throws声明异常,表示当前方法可能出现异常,方法的调用者来处理异常

        (4)如果在主函数main中舒勇throws,则由我们的jvm来处理

    五.异常链.

      1什么是异常链?

        (1)异常链是指将捕获的异常包装进一个新的异常中,新异常中记录了原始异常的信息,并重新抛出异常处理方式.

    六:自定义异常:

      1异常类必须是Throwable的子类

      2:定义运行异常 继承RuntimeException

      3.定义受查异常 继承Exception.

    七:异常的使用原则:

      1.异常只能用于非正常情况.

      2:为异常提供说明文档.

      3.尽可能的避免异常,特别是运行时异常

      4:保持异常的原子性.

      5.避免过于庞大的try代码块.

      6:在catch中制定具体的异常类型

      7:不要在catch块中忽略捕获的异常.

  • 相关阅读:
    C if语句判断年龄
    C 计算时间差
    C 计算身高
    JRebel激活破解完美解决方式
    Maven optional和scope
    判断当前时间是否在某个时间段内
    给定时间加上几个小时
    RabbitMQ学习笔记
    浏览器、服务器会话
    Maven核心知识点梳理
  • 原文地址:https://www.cnblogs.com/buai/p/7701163.html
Copyright © 2020-2023  润新知