Java编程:自定义异常案例(多个异常处理)

本文介绍如何在Java中自定义异常类,并通过实例演示了在不同情况下的异常处理流程。包括创建自定义异常类、抛出异常、使用try-catch捕获处理等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义异常

用户只需要继承Exception类即可自定义异常类。在程序中使用自定义异常类,大体可分为以下几个步骤:

1、创建自定义异常类。

2、在方法中通过throw关键字抛出异常对象。

3、如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。

4、在出现异常的方法的调用者中捕获并处理异常。

自定义异常案例

案例描述
老师上课用电脑
第一种:电脑死机异常
处理方式:影响老师上课,发生老师上课异常
处理:去修电脑
第二种:电脑蓝屏异常
处理方式:重启电脑
代码实现

package com.cr.instance;
/*
自定义异常案例:

老师上课用电脑
    第一种:电脑死机异常
        处理方式:影响老师上课,发生老师上课异常
            处理:去修电脑
    第二种:电脑蓝屏异常
        处理方式:重启电脑
 */
public class Instance03 {
    public static void main(String[] args) {
        Computer computer = new Computer();
        Teacher teacher = new Teacher("张三",computer);
        try{
            teacher.classing();
        }catch (ClassingException e){
            e.printStackTrace();
            System.out.println("去修电脑");
        }

    }
    //定义三个异常
    static class LanPingException extends Exception{
        public LanPingException(){}
        public LanPingException(String message) {
            super(message);
        }
    }
    static class SiJiException extends Exception{
        public SiJiException(){}
        public SiJiException(String message) {
            super(message);
        }
    }
    static class ClassingException extends Exception{
        public ClassingException(){}
        public ClassingException(String message) {
            super(message);
        }
    }
    //老师类
    static class Teacher{
        private String name;
        private Computer computer;

        public Teacher(String name, Computer computer) {
            this.name = name;
            this.computer = computer;
        }
        //老师上课
        public void classing()throws ClassingException{
            try{
                computer.work(2);
            }catch (LanPingException e){
                e.printStackTrace();
                computer.reset();
            }catch (SiJiException e){
                e.printStackTrace();
                throw new ClassingException("老师上课异常");
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
    //电脑类
    static class Computer{
        private String name;

        //重启电脑
        public void reset(){
            System.out.println("重启电脑");
        }

        //工作
        //设立一个state,1表示蓝屏,2表示死机
        //声明时可以直接将发生的异常声明,也可以声明他们的父类异常
        public void work(int state)throws LanPingException,SiJiException//Exception
        {
            if (state == 1){
                throw new LanPingException(("电脑蓝屏了"));
            }else if (state == 2){
                throw new SiJiException("电脑死机了");
            }
        }
    }
}


更多Java异常处理,看这篇博文:
https://blog.csdn.net/Mr_Ren_0_1/article/details/125545056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ChlinRei

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

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

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

打赏作者

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

抵扣说明:

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

余额充值