java异常处理

来源:互联网 发布:二级运动员知乎 编辑:程序博客网 时间:2024/06/06 19:32

7.31总结

1.异常

  • 在程序的运行过程中所发生的不正常的事件,会中断正在运行的程序。

2.异常类的层次结构

异常的层次结构

3.java异常类

java异常类

4.java异常处理

  • java的异常处理是通过5个关键来实现的:try、catch、finally、throw、throws。
    异常处理
  • try-catch处理异常的三种情况:

    1. try里边的代码段不产生异常,程序执行catch语句后的代码段。
      这里写图片描述
    2. try里边的代码块产生异常,但catch 到的异常类型与所产生的异常对象的类型不匹配,导致程序直接中断。
      这里写图片描述
    3. try里边的代码块产生异常,且catch到的异常类型与所产生的异常对象的类型匹配,执行catch语句。
      这里写图片描述
  • try-catch-finally处理异常
    在try-catch块后加入finally块,可确保无论是否发生异常,finally块中的代码总能被执行。

  • 如果在当前环境无法解析一个异常,就要使用throws声明异常,用throw将异常抛出,把它交给调用者处理。
    这里写图片描述
    这里写图片描述
    这里写图片描述

5.用户自定义异常

  • JavaAPI提供的内置异常不一定总能捕获程序中发生的所有错误,有时会需要创建用户自定义异常 。
  • 自定义异常需要继承Exception 及其子类
  • 格式:
    public class 自定义异常名 extends Exception{
    public 自定义异常名(){
    super();
    }
    public 自定义异常名(String message){
    super(message);
    }
    }

6.(1)异常案例1
这里写图片描述
这里写图片描述
这里写图片描述
(2)异常案例2

  • 编写如下异常类:
    空异常(NullException ,年龄低异常(LowAgeException),年龄高异常(HeightAgeException),
    工资低异常(LowSalaryException),工资高异常(HighSalaryException),身份证非法异常(IdCardException)
  • 编写一个员工类,
    (1) 有属性:
    编号,姓名,年龄,工资,身份证号码,员工人数(10),员工工资总额(10000)
    (2) 有构造器:
    构造器1:设置编号,年龄,姓名;如果年龄小于18,抛出年龄低异常;如果年龄大于60
    抛出年龄高异常,如果姓名为null或为空字符串,抛出空异常。
    构造器2:设置工资,设置身份证号码;如果工资低于600,抛出工资低异常。
    如果身份证不是18位,抛出身份证非法异常。
    (3) 有方法
    增加工资 addSalary(double addSalary),抛出工资高异常,当增加后的工资大于员工工资总额时,抛出此异常。
    减少工资 minusSalary(double minusSalary), 抛出工资低异常,当减少后的工资低于政府最低工资时,抛出工资低异常。
    显示员工工资总额方法:showTotalSalary(),抛出空异常,当工资总额为0时,抛出此异常。
    显示员工人数:voidshowTotalEmployee(),抛出空异常。当员工人数为0时,抛出此异常
  • 编写main主测试类
    生成员工,测试构造方法的异常抛出。
    每个员工分别增加,减少工资,测试方法的异常。
    显示员工的人数和工资总额。
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    这里写图片描述
    在本案例中,测试类中只声明了两个员工,可自行改变传入的值,得到不同的异常信息,或创建多个对象,分别测试异常信息。
原创粉丝点击