Java基础之异常处理初接触

Java零基础-数组:异常处理和错误处理 在 Java 开发中,数组是一种非常常见的数据结构。掌握数组的异常处理和错误处理是 Java 零基础学习的关键之一。本文将给出详细的介绍和实例,帮助读者理解和掌握这一知识点。本文将首先介绍异常处理和错误处理的基本概念和原则。然后,通过一个具体的例子,讲解如何在处理数组时遇到异常和错误时进行处理。最后,通过应用场景案例和优缺点分析,帮助读者更好地理解并应用所学的知识。异常和错误是程序中经常遇到的问题,也是需要及时处理的。Java 提供了异常处理机制,使得我们能够在程序运行时捕获并处理异常。 阅读详情

1.异常的定义及分类

1.异常的简单定义:程序在编译过程或运行时出现的不正常行为

2.异常分类:Java中的异常可分为Error(错误)和Exception(异常)两类。前者程序本身无法处理(一般涉及jvm方面),而后者程序可通过一定的方式进行处理。

第一类异常第二类异常
编译时被检测的异常编译时不被检测的异常(运行时异常,RuntimeException以及其子类)

以下为java异常体系继承关系,Error与Exception的父类为Throwable(可抛出)

这里写图片描述

3.异常类常用方法:

String getMessage()
返回此对象的详细消息字符串。
[异常信息]

void printStackTrace()
将此对象及其追踪输出至标准错误流。
[异常名称:异常信息,异常出现的位置,堆栈跟踪信息]
tips:jvm中的默认异常处理机制

String toString()
返回此对象的简短描述。
[异常名称:异常信息]

tips:java为了增强代码阅读性会将父类名作为子类后缀名(借鉴)

4.使用异常的好处

将程序运行中的问题进行封装将正常流程代码与问题处理代码进行分离,增强代码可读性

2.常见异常

异常名称说明
java.lang.ArrayIndexOutOfBoundsException数组索引越界异常
java.lang.ArithmeticException算术条件异常
java.lang.NullPointerException空指针异常
java.lang.ClassNotFoundException找不到类异常
java.lang.NegativeArraySizeException数组长度为负异常
java.lang.ArrayStoreException数组中包含不兼容的值抛出的异常
java.lang.IllegalArgumentException非法参数异常
IOException操作输入流和输出流时可能出现的异常
EOFException文件已结束异常
FileNotFoundException文件未找到异常

3.异常的处理

常用格式一[捕捉+处理+关闭资源]:

  try{
      //待检测的代码
  }catch(异常类 变量名){

  }finally{
     //一定会执行的操作
  }

常用格式二[捕捉+处理]:

  try{
      //待检测的代码
  }catch(异常类 变量名){

  }

常用格式三[捕捉+关闭资源]:

  try{
      //待检测的代码
  }finally{
     // 一定会执行的操作
  }

注意1:在try catch语句中的代码块自成一块变量作用域
注意2:finally中的语句一般用于关闭资源或一些必须执行的操作
注意3:finally中的语句即使在return后依旧会执行,除非程序执行System.exit(0)[jvm结束]

执行过程: try–>catch()(父类的引用接收子类对象)–>finally

注意: try代码块中一旦发生异常,异常语句后面的代码就停止执行


4.异常声明

格式: 方法名() throws Exception
说明:在方法上声明异常,便于提高安全性,让调用者进行处理,不处理则编译失败

处理过程:遇到异常–>捕捉或抛出(极端情况:抛出异常给jvm虚拟机)


5.多异常处理

1.声明异常时建议声明更具体的异常,这样在处理更加具有针对性

2.处理时可以添加多个catch语句对相应具体异常进行处理

3.如果多个catch块中的异常出现继承关系,则父类异常块应该放在后面(catch顺序执行)

4.建议在catch中对异常进行具体的处理,而不要仅仅进行简单的异常说明

处理方式举例:[将异常以文件形式记录下来(异常日志文件)]
简单举例:

   try {
        int end=eo.getEnd(-1,0);
    } catch (SpecialException e) {               
        System.out.println("错误的首位数为:"+e.getNum());
    }catch(ArithmeticException e2){
        System.out.println(e2,toString());      
    }

6.自定义异常

应用场景:对具体项目中的特有问题进行自定义异常封装(参照java的异常封装思想)

//演示自定义异常
class SpecialException extends Exception{    
    int numExc;//特殊异常数据
    public SpecialException(String msg){
        super(msg);//调用父类构造方法
    }

    public SpecialException(String msg,int numExc){
        super(msg);//调用父类构造方法
        this.numExc=numExc;
    }

    public int getNum(){
        return numExc;
    }
}
//测试用类
class ExceptionOwn{
    public int getEnd(int a,int b) throws SpecialException{
        if(a>5)
            throw new SpecialException("希望您的首位数字不要超过5");//抛出自定义异常信息的自定义异常
        if(a<0)
            throw new SpecialException("首位数字不能小于0",a);//抛出自定义异常信息的自定义异常
        if(b==0)
            throw new ArithmeticException("注意第二位参数不能为0");//抛出自定义异常信息的系统异常
        return a/b;
    }
}

1.建议自定义异常类以exception结尾[后缀名] extends Exception

2.自定义异常只能在代码中手动抛出([例:通过条件判断语句在特殊情况下使用throw关键字手动抛出])

3.若在方法中通过throw抛出自定义异常,必须进行以下两种处理方式:

在方法内部进行try catch 处理[自己处理];在方法上进行声明让该方法的调用者进行处理

4.一般情况下,方法内出现异常,方法上需要使用throws关键字进行声明

特殊:runtimeException 在方法中出现throw关键字,方法上可以不用throws声明,如果在方法上抛出该异常,调用者可以不用对该异常进行try catch处理

在该类情况下程序的设计者希望程序停止运行(因为这是由于调用者的错误使用造成的,程序无法继续运行;此时程序设计者希望使用者重新编写代码)

[例] NullPointerException ArithmeticException IndexOutOfBoundsException

自定义异常处理思想:如果该异常出现后,程序无法继续运行。则可以令该异常继承RuntimeException

定义自定义异常的异常信息: 在自定义异常类构造方法中直接调用super(msg)即可

还可以对异常信息进行特色化处理(例如输出运行中的输入数据)[通过定义多参数的构造函数以及相应的变量,并定义相应的getter方法]

throws和throw的区别:

throws使用在方法上;throw使用在方法内
throws后面跟异常类,可以跟多个,用逗号隔开;throw后者后跟异常对象

自定义系统异常的异常信息:在方法中通过throw new 系统异常(msg)

public int getEnd(int a,int b) throws SpecialException{

        if(b==0)
        throw new ArithmeticException("注意第二位参数不能为0");//抛出自定义异常信息的系统异常
        return a/b;
    }

7.异常在子类父类覆盖中的使用特点

1.子类继承父类,并对父类中有异常抛出的方法进行覆盖。则该方法在子类中只能抛出父类中的异常或其子类异常,不能抛出新的异常。

2.如果父类中的方法抛出多个异常,则子类在覆盖该方法时只能抛出父类中异常的子集。

3.如果父类或接口中的方法无异常抛出,则子类覆盖该方法时也不能抛出异常。如果出现异常,则只能在方法内部用try进行处理。



8.一个完整的简单异常应用实例

场景描述:司机驾驶汽车,汽车类可能会抛出两个异常,随其状态值而改变。针对汽车具体的异常,司机类也可能会抛出特殊异常。其中有对各异常的简单处理。

package com.dream.home_1102.exception;

//定义货车发动机过热异常
class CarHotException extends Exception{
    public CarHotException(String msg){
        super(msg);
    }
}

//定义货车发动机损毁异常
class CarDestroyException extends Exception{
    public CarDestroyException(String msg){
        super(msg);
    }
}

//定义司机无法继续驾驶异常
class DriverStopException extends Exception{
    public DriverStopException(String msg){
        super(msg);
    }
}

//定义汽车类
class Car{
    private int state=3;//汽车是否正常运行的状态码
    public Car(int s){
        state=s;
    }
    //定义汽车行驶方法
    public void run() throws CarHotException,CarDestroyException{
        if(state==2)
            throw new CarHotException("发动机过热");
        if(state==3)
            throw new CarDestroyException("发动机已经损坏");
        System.out.println("汽车正在行驶");
    }

    //定义汽车停止冷却方法
    public void restCold(){
        state=1;
        System.out.println("经过修整,汽车的发动机温度回归正常");
    }
}

//定义司机类
class Driver{
    private String name;
    public Driver(String name){
        this.name=name;
    }
    public void drive(Car c) throws DriverStopException{
        try {
            c.run();
        } catch (CarHotException e) {            
            System.out.println(e.toString());
            c.restCold();
        } catch (CarDestroyException e) {            
                throw new DriverStopException("司机停止行驶"+e.getMessage());
        }
    }
}

public class ManagerException {

    public static void main(String[] args) {
         Driver k=new Driver("K先生");
         Car car1=new Car(1);
         Car car2=new Car(2);
         Car car3=new Car(3);
         try {
            k.drive(car1);
            k.drive(car2);
            k.drive(car3);
        } catch (DriverStopException e) {            
            System.out.println(e.toString());
            System.out.println("K先生可以考虑换一辆车了");
        }    
    }

}

运行结果:

汽车正在行驶
com.dream.home_1102.exception.CarHotException: 发动机过热
经过修整,汽车的发动机温度回归正常
com.dream.home_1102.exception.DriverStopException: 司机停止行驶发动机已经损坏
K先生可以考虑换一辆车了

经典案例:学习 Java 异常处理的最佳实践 Java作为一种广泛使用的开发语言,为初学者提供了强大的工具和框架。然而,对于零基础的学习者来说,掌握Java的最佳实践和异常处理技巧并不容易。本文将介绍一些Java的最佳实践,并提供详细的异常处理技巧,帮助零基础学习者更好地理解和运用Java语言。本文将首先介绍Java的最佳实践准则,包括命名规范、代码风格和注释规范。然后,我们将探讨异常处理的重要性,以及如何使用try-catch语句和异常处理器来处理异常。最后,我们将通过源代码解析和应用场景案例,进一步巩固所学知识,并分析Java的优缺点。 阅读详情

相关推荐

Java零基础-Java异常处理机制

在上期内容中,我们探讨了Java集合框架的核心概念与实现原理。你学会了如何使用ListSetMap等集合类高效管理数据,并掌握了它们在不同应用场景中的最佳实践。然而,在实际开发中,程序的运行环境往往不可预测,错误和异常在所难免。为了确保程序的稳定性和健壮性,异常处理机制在Java编程中显得尤为重要。本期内容将深入解析Java异常处理机制,帮助你编写更具鲁棒性的代码。本文将系统介绍Java中的异常处理机制,涵盖异常的基本概念、分类及其工作原理。

喵手的博客 1031

Java | 异常处理

详细介绍了Java中有关异常处理的相关知识点以及相应的java实现。

天下弈星~的博客 4895

深入解析 Java 异常处理!

在 Java 中,异常处理是编程中的一个重要部分。无论是编写企业级应用,还是开发小型工具,异常处理都能帮助我们更好地捕获和解决潜在的错误,提高代码的健壮性和可维护性。了解和掌握 Java 的异常机制,对于编写高质量、可靠的代码至关重要。在 Java 中,异常(Exception)是指程序在运行时发生的意外事件,通常是指某种错误或不符合预期的情况。异常的出现会导致程序的执行中断,因此,必须采取合适的措施来处理这些异常,以防止程序崩溃。在 Java 中,开发者可以根据业务需求自定义异常。自定义异常通常继承自。

喵手的博客 751

java异常处理概述_16.1 Java异常处理机制概述(2)

16.1 Java异常处理机制概述(2)例如,当methodA()方法抛出SpecialException时,如果在该方法中提供了捕获SpecialException的catch代码块,就执行这个异常处理代码块。如果methodA()方法未捕获该异常,而是采用第二种方式声明抛出SpecialException,那么Java虚拟机的处理流程将退回到上层调用方法methodB(),再察看method...

weixin_29441555的博客 152

PyMOL下载安装教程(附安装包)2025最新版(PyMOL 3.0.3)

本文详细介绍了Windows系统下PyMOL分子建模软件的安装教程。主要内容包括:提供安装包下载链接,强调需关闭杀毒软件;分步骤讲解管理员身份运行安装程序、接受协议、选择安装路径等安装流程;重点说明如何配置隐藏文件夹ProgramData中的许可证文件;最后提供基础使用技巧和常见问题解决方案。该教程适用于需要制作高质量分子结构图的科研人员和新手用户,帮助完成软件部署并顺利开展工作。

progalchemist的博客 3825

Paypal开发者中心获取“ClientId”和“ClientSecret”参数

正式环境设置 1、登录到 paypal开发者中心 网址:https://developer.paypal.com/developer/ 点击右上角登录按钮登录 2、左侧栏 - 我的应用程序和凭证 - 点击“创建新应用” 新注册的paypal账号,需要进行邮箱验证,验证通过后,需要等待一段时间(或重新登录),才会出现相关设置项位置 验证邮箱通过后,点击创建新应用 3、按提示填写,保存创建应用 4、点击刚创建的应用进入应用详情页 5、应用详情页获得网站开发人员所需要的“ClientId”和“Client

龚清林的博客 1万+

JAVA之异常处理

文章目录

qq_48666555的博客 341

【开源~磁悬浮】零代码,纯硬件闭环:从霍尔到H桥的磁悬浮稳定术

本文详细介绍了如何不依赖任何代码,仅通过模拟和数字电路的组合,实现一个完整的磁悬浮闭环控制系统。从霍尔传感器检测位置,到运放电路进行信号调理与模拟PID控制,再到H桥驱动电磁铁执行纠偏,全程使用基础电子元器件搭建。文章深入剖析了系统原理、电路设计、调试技巧与实践经验,展现了纯硬件实现自动控制的独特魅力与挑战。

perl8的博客 623

Java中的常用异常处理

一、Java异常处理机制概述 1、Java虚拟机用方法调用栈来跟踪每个线程中一系列的方法调用过程。 2、方法中的代码块可能抛出异常,有如下两种处理办法: l 在当前方法中通过try…catch语句捕获并处理异常。例如:public void methodA(intmoney){ try{ //以下代码可能会抛出SpecialException if(--money <= 0) throw ne

从零开始的Java编程 641

脑影像分析入门:如何用一般线性模型(GLM)处理fMRI数据?

本文为神经影像研究入门者详细解析了如何运用一般线性模型(GLM)处理fMRI数据。文章从GLM的核心原理出发,逐步拆解了从实验设计、构建稳健设计矩阵、模型估计与统计推断,到高阶分析及多重比较校正的全流程,并指出了常见陷阱与结果解读要点,是掌握fMRI数据分析基础的关键指南。

weixin_29091445的博客 400

SC-FDMA

<br />SC-FDMA(Single-carrier Frequency-Division Multiple Access,單載波分頻多工),是LTE的上行鏈路的主流多址。<br />SC-FDMA是單波載(Single-carrier),與OFDMA相比之下具有的較低的PAPR(峰值/平均功率比,peak-to-average power ratio),比多載波的PAPR低1-3dB左右(PAPR是由于多載波在频域叠加引起)。更低的PAPR可以使行動終端(mobile terminal)在發送功效方面

jod的专栏 3299

JDK1.7新特性之try-with-resources和catch多种异常

try-with-resources语句是一个声明一个或多个资源的

lavimer 1万+

GB9706.1-2020应用部分如何理解?

医用电气设备对应用部分的温度限制,绝缘考核,漏电流限制要求相对设备的其他部分来说都会要求比较严格。所以,划分设备的应用部分显得非常重要。现实中,医疗器械种类繁多,形状各异,比如大家熟悉的,小的如血压计,大的设备如CT。有些时候,我们应该如何根据应用部分的定义来确定ME设备的哪些部分是应用部分呢?还有GB 9706.1-2020中关于“应用部分”的定义中注2我们又该如何理解? 看过GB 9706.1-2020的朋友应该都已经注意到,相比老版也就是07版的9706.1,应用部分的定义是相对变...

喵叫兽的博客 8300

小白也能看懂的 Java 异常处理

作者 |泰斗贤若如责编 | 伍杏玲出品 | 优快云(ID:优快云news)异常的简介在Java中,异常就是Java在编译、运行或运行过程中出现的错误。程序错误分为三种:编译错误、运...

优快云资讯 8225

RT-DETR-R18 的轻量化 Trick:剪枝与量化在模型中的应用

RT-DETR-R18轻量化技术通过结构化剪枝、混合精度量化和知识蒸馏的组合优化,实现了显著模型压缩效果。摘要如下: RT-DETR-R18模型通过创新轻量化技术组合,在保持46.2% mAP精度的前提下,将模型大小压缩至2.1MB(压缩率78%),计算量降至3.2 GFLOPs(减少78.2%),实现移动端28ms实时推理(加速37.8%)。核心技术包括:1)渐进式结构化剪枝系统,通过L1范数重要性评估和动态剪枝调度;2)混合精度量化策略,对关键层保留FP16精度;3)教师-学生知识蒸馏框架保持模型表达能

走向CTO的路上... 1195

YOLOv11改进 | 缝合CCFM轻量检测模型实现高精度跨尺度特征融合【附参考代码】

YOLOv11作为一代优秀的端到端目标检测模型,已经在速度和精度之间取得了较好的平衡。但其默认的Neck结构(通常为FPN + PAN)在处理小目标与多尺度信息时,仍存在信息流冗余、跨尺度特征融合不充分等问题。 本文提出一种轻量化的跨尺度跨通道融合模块(CCFM, Cross-scale and Cross-channel Fusion Module),以替代或增强YOLOv11中的Neck部分,有效提升特征表达能力和检测性能,尤其是在小目标和复杂场景下取得显著涨点。

一键难忘的博客 1416

异常处理之再接触

概念 分类 异常的捕获和处理: 无法处理 总结 &nbsp;&nbsp;&nbsp;&nbsp;小咸儿在学习J2SE时,再一次接触了异常处理,上一次时总结try Catch的使用,接下来就从宏观来再一次了解‘异常处理’的真面目。 &nbsp;&nbsp;&nbsp;&nbsp;首先先将小咸儿的思维导图展示一下: &nbsp;&nbsp;&nbsp;&nbsp;接下来就来详...

幸遇三杯酒好,况逢一朵花新 488

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java异常处理机制

之前学习C#这门语言,接触过“异常”这个名词,那个时候自己理解为程序非正常执行,包括参数传递异常,程序处理数据异常等;为了防止出错导致程序异常卡死,所以此时通过throw关键字将错误抛出,至于抛出到哪里以及抛出过程当时真的不清楚。这里推荐一篇博客关于C#异常过程-C#异常处理总结和C#异常执行原理。 现在学习了Java中的异常处理后,发现当时直接throw new Exception真的挺有意思...

乐于探索,乐于奉献,追求极致,向往生活 580

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java异常处理详解

1JAVA异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、内存越界等。异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程。Java通过API中Throwable类的众多子类描述各种不同的异常。因而,Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的错误条件。当条件生成时,错误将引发异常。 Java异常类层次结构图: 这里需

wlssing 729

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

java语言异常处理_Java异常处理

简介异常处理是java语言的重要特性之一,《Three Rules for effective Exception Handling》一文中是这么解释的:它主要帮助我们在debug的过程中解决下面的三个问题。什么出错了哪里出错了为什么出错java语言可以说是提供了过于完善的异常处理机制,以致于后来《Thinking in java》的作者Bruce Eckel都专门对他进行了论述。java中的异常...

weixin_42355400的博客 351

Java基础知识复习

文章目录前言一、Java 概念与常识Java 语言有哪些特点?JVM vs JDK vs JREJVMJDK 和 JRE字节码二、基本语法字符型常量和字符串常量的区别?标识符和关键字的区别是什么?Java 语言关键字有哪些?自增自减运算符continue、break 和 return 的区别是什么?方法什么是方法的返回值?方法有哪几种类型?静态方法为什么不能调用非静态成员?总结 前言 随着Java技术的不断更新,我深知在学习新技术的同时,还要不不断总结之前学习的知识,并与新的知识融会贯通,做到举一反三。

m0_50447364的博客 3226

【Java基础】Java异常体系和异常处理机制

文章目录一.异常机制的概述二.Java异常的分类ThrowableError(错误)Exception(异常)三.异常处理流程异常的产生过程的解析四.捕获异常try-catchtry-catch-finally总结五.抛出异常throws抛出异常throw抛出异常异常关系链异常转义 一.异常机制的概述 概述 异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当...

墩墩分墩 671

基础总结-Java基础(1)

这个基础系列我希望是像过目录一样给大家一个大体的提纲,我在大学中无论学什么科目,临考前都要做的工作就是对着书的目录做个总览,对每个知识点做到心中有数,举一反三才是对该科目真的了解。因此抛砖引玉的列了这样一个提纲,在使用的时候最好就是先大体浏览一遍,对自己知道的东西加以熟悉,对自己稍感陌生的东西做到查漏补缺,返回去把遗忘的感到不熟悉的地方重温一遍,对自己整体基础的提高尤其重要。

Nimikyの议事大厅 5149

googlemap初接触问题

googlemap初接触问题 1.Couldn't get connection factory client 虽然后台报这个异常,但是模拟器中的地图还是正常显示。 去查了很多帖子,大家都是有这个问题,但是并没有结局方法。然后看到一个帖子说是rom的问题。他说如果把rom刷成欧洲原版的就不会出现这个问题。(但是貌似这个不会是虚拟机出问题的原因吧) 2.java.lang.Illeg

devilzy2656的专栏 722

Java,异常处理

Java中把不同的异常用不同的类表示,一旦发生某种异常,就创建该异常类型的对象,并且抛出(throw),然后程序员就可以捕获(catch)到这个异常对象,并处理;②针对try中抛出的异常类的对象,使用之后的catch语句进行匹配。②throws的方式仅是将异常抛给了此方法的调用者,调用者仍然需要考虑如何处理相关异常,从这个角度看,throws的方式并不是真正意义上处理了异常。③子类重写的方法抛出的异常类型可以与父类被重写抛出的异常类型相同,或是父类被重写方法抛出的异常类型的子类。①继承于现有的异常体现。

ZXH7762082的博客 1257

java异常分类,异常处理,面试中常见异常问题!

什么是异常? 程序运行过程中产生的不正常的情况统称为异常! Throwable 类是 Java 语言中所有错误或异常的超类。提供了错误堆栈实现等一系列方法。 有两个直接子类:Error & Exception 程序错误一般分为三种: 1.编译错误;2.运行时错误;3.逻辑错误。 (1)编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这个也是我们在刚接触...

Java开发,人工智能,边缘计算,致力于掌握前沿技术 7859
下一篇: Java基础之线程初接触
CodingEnding
博客等级 码龄11年 86粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值