zoukankan      html  css  js  c++  java
  • 4.20Java异常机制

    4.20Java异常机制

    本章内容

    • 异常的定义

    • Java异常处理机制

    • Java异常分类


    什么是异常(Exception n.例外)?

    异常是指软件程序在运行过程中遇到的问题我们称之为异常。

    拷贝文件代码:

    public class Test1{
       public static void main(String[] args){
           //将d:a/.txt复制到e:/a.txt
           /*
           考虑的情况:
           1.文件是否存在
           2.e盘空间大于a.txt文件长度
           3.复制到一般IO流断掉
           */
           if("d:a.txt"这个文件存在){
               if(e盘的空间大于a.txt文件长度){
                   if(文件复制到一半IO流断掉){
                       停止copy,输出:IO流出问题
                  }else {
                       copyFile("d:/a.txt", "e:/a.txt");
                  }
              }else {
                   System.out.println("e盘空间不足!");
              }
          }else {
               System.out.println("a.txt不存在!");
          }
      }
    }

    这种方式的坏处:

    1. 逻辑代码和错误处理代码放在一起!

    2. 程序员本身需要考虑的例外情况较复杂

    Java异常处理机制---try...catch(捕获)

    try{
       copyFile("d:/a.txt", "e:/a.txt");
    }catch(Exception e){
       e.printStackTrace();
    }

    异常机制的本质:

    程序可以安全的退出


    异常的概念

    程序运行过程中出现的非正常现象

    异常处理的概念

    指程序在出现问题时依然可以正确的执行完

    Java的异常处理机制

    特点:

    • 引进很多用来描述和处理异常的类,称为异常类

      • 异常类定义中包含了该异常类的信息和对异常进行处理的方法

    做法:

    • 采用面向对象的方式来处理异常的

    处理过程:

    1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE(Java运行时环境)

    2. 捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理代码为止

    try{
       //
    }catch(Exception e){
       e.printStaticTrace;
       /*
       Java通过生成异常类对象处理异常,所以一定会生成对象
       */
    }

    异常分类

    如图:---异常类的层次结构(根类下面有两个子类)

    特点:

    • 所有异常对象都是派生与Throwable类的一个实例

    • 内置的异常类不满足要求可以自己创建异常类

    子类特点:

    Error异常不需要处理

    特点:

    • 程序无法处理的错误,表示运行应用程序中较严重问题

    • 大多时候表示的是JVM出现的问题---如内存溢出

    • 这类异常发生通常会选择线程终止

    • Error表明系统JVM处于不可恢复的崩溃状态中,无需管它

    Error类包括:

    Exception

    需要程序员去管的

    RuntimeException---UncheckedException---运行时异常

    编译器不需要处理,运行时会抛出

    CheckedException---已解决异常
    It's a lonely road!!!
  • 相关阅读:
    Java实现 蓝桥杯 算法提高 小X的购物计划
    Java实现 蓝桥杯 算法提高 小X的购物计划
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java实现 第十一届 蓝桥杯 (高职专科组)省内模拟赛
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
    129. Sum Root to Leaf Numbers
    117. Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14682617.html
Copyright © 2011-2022 走看看