Java程序设计实验四 异常类

一、实验目的及要求

1.实验目的

  1. 掌握异常类中的try-catch语句和自定义异常类;
  2. 对程序运行中出现的各种异常进行处理;
  3. 熟悉并学会自定义异常对象的方法。

2.实验要求

  1. 弄清楚try-catch语句和自定义异常类在错误产生时的程序控制流程;
  2. 能够对程序运行时可能出现的问题进行处理,并给出产生异常情况下的具体操作;
  3. 掌握自定义异常类的方法

二、实验环境

  1. 硬件要求:一台电脑(带Windows 10操作系统)
  2. 软件要求: JDK-14.0.2,Intellij IDEA 2020.1.2

三、实验内容(实验方案、实验步骤、设计思路等)

  1. 实验方案:编写一个Java类,其中的异常类继承Exception,Ship类提供抛出异常的方法,最后由主类实现。
  2. 实验步骤:先编写异常类,并为其提供方法。然后编写Ship类,主类中创建Ship对象,使用try-catch语句捕获异常。
  3. 设计思路:在主类中创建对象后,使用try-catch语句,主动令抛出异常的方法抛出异常,以便于被catch语句捕获,根据输出语句判断程序运行到了哪个位置。

四、实验结果与分析

在这里插入图片描述

五、附源代码

package com;
class Ship {
    private int cargo;//船上货物量

    Ship(int cargo) {//需要初始货物量
        this.cargo = cargo;
    }

    void addCargo() {//加货
        cargo = cargo + 100;
    }

    void downCargo(int num) throws EmptyException {//卸货,货不足则抛出异常
        if(num >cargo){
            String message = "在装货前,这艘船是空的。";
            throw new EmptyException(this, message);
        } else {
            cargo = cargo - num;
        }
    }
}

class EmptyException extends Exception{
    EmptyException(Ship ship,String s)
    {
        super(s);//传递异常信息
        ship.addCargo();
        System.out.println("需要一些货");
    }
}

public class Main {
    public static void main(String[] args) {
        int initial = 100;
        Ship ship=new Ship(initial);
        try {
            System.out.println("需要装货。");//测试正常情况
            ship.downCargo(80);
            System.out.println("现在要使用80吨货。");
            ship.downCargo(20);
            System.out.println("需要另外20吨货。");
            ship.downCargo(30);//此次抛出异常
            System.out.println("30吨货。");
        } catch (EmptyException e) {
            String message = e.getMessage();//获取异常信息
            System.out.println("一个异常出现");//用于标记位置
            System.out.println(message);
        }
    }
}

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刚入坑的软件猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值