• java学习阶段一 工具类(异常)


    java学习阶段一 工具类(异常)

    介绍

    异常:运行期间出现的错误 背离程序本身意图的表现

    基本知识

    异常的分类

    • 根类 Throwable

    • Error 程序无法处理的错误 表示运行应用程序中教严重的问题不可查 应用程序控制和处理能力之外(个人想法:非java代码内容导致的错误)

    • Exception 程序本身可以处理的异常

      • Unchecked Exception 编译器不要求强制处置的异常(编译器不会对该异常进行检查,也就是在编写代码期间该种异常无法被提醒到)此异常被抛出如果没有对应的捕获编译器也不会报错 检查异常则会
      • Checked Exception 编译器要求强制处理的异常

    抛出异常 对异常处的状态进行返回 提交

    捕获异常 对抛出的异常进行获取和相关代码处理

    处理异常方式

    • try-catch-finally

      try{
          //代码段1
          //产生异常的代码段2
      }catch(异常类型 e){
          //对异常进行处理的代码段3
      }finally{
          //代码段4
      }
      

      要求:try块后可接零个或多个catch块 如果没catch块则必须跟一个finally

      在catch中打印出错误的信息 异常对象.printStackTrace();

      不想运行finally中的程序 使用java自带类System

      System.exit(1)//一般参数不为零即可
      

      在此异常处理方法中的return 即使在try或者catch中运行了return但依旧会继续执行final语句 如果final中有return则会覆盖前面的return

    • throws

      如果一个方法可能会出现异常 但没有能力处理这种异常 可以在方法声明处用throws子句来声明抛出异常 并在方法调用出解决

      修饰符 返回类型 方法名() throws 方法类型1,方法类型2,方法类型3...{}//格式
      方法调用放在try中
      
    • throw 抛出一个异常 抛出的只能够抛出Throwable 或者其子类的实例对象

      throw new 异常类型() 括号内为异常描述

      设计处理方式 1 将throw 放在try中由try捕获 2 由throws关键字接受 抛出到调用处

    • 自定义异常

      定义一个类继承Throwable类或者其子类

    • 异常链

      异常处理由抛出和捕获 异常链为捕获一个异常的时候抛出一个异常

      一般情况只能获取异常链最后的异常

      想要获取前面的异常

      方法 1 将捕获异常的catch方法内的throw抛出语句中 传入前面抛出的异常的对象

      ​ 2 实例化一个异常类的对象运用

           ```java
      

      新实例化对象.initCause(载入前面的异常对象);
      throw 新实例化对象名;
      ```

    注意事项

    1 catch的捕捉异常的对象一般建议Exception的子类以具体确定错误来源并且在最后加一个Exception接受异常(父类异常只能放在子类异常后)

    2 个人理解 程序遇到异常如果没有响应的捕获处理则会停止运行 将抛出的错误进行交给控制台 而如果try代码块中有错误抛出,则会交由catch接受处理 而throws则是用于将抛出的异常交由调用处(上一级)处理,而throw则是不由系统遇到异常进行抛出,而是认为的确定异常的条件并描述错误。

    3 捕获异常类型可以是抛出异常类型的父类 不能是子类

  • 相关阅读:
    7月23日 R进行层次聚类算法的继续完善
    明天学习的内容
    MySql快速导出为excel文件
    数据挖掘的隐私边界 【转自《中欧商业评论》】
    【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
    7月20日下一步工作
    R对term进行kmeans聚类完整实例(tm包)
    数学之美 系列一 统计语言模型
    7月30日总结
    MathType输入Support 自动分开的问题
  • 原文地址:https://www.cnblogs.com/tigo/p/14417777.html
Copyright © 2020-2023  润新知