PHP的异常处理机制

php的错误和异常处理机制 php的错误和异常处理机制。1、php错误分类;2、error_reporting、display_errors、log_errors、log_errors_max_len、error_log等配置;3、set_error_handler的使用;4、set_exception_handler 的使用;5、用trigger_error触发错误;6、捕获异常try/catch/finally的使用方式 阅读详情

昨天晚上,看了下顺平老师的视频,原来一直没用到过php的异常处理,今天写一篇,记录下,先来了解下异常处理

异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生:          当前代码状态被保存         代码执行被切换到预定义的异常处理器函数          根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本PHP 5 提供了一种新的面向对象的错误处理方法。可以使用检测(try)、抛出(throw)和捕获(catch)异常。即使用try检测有没有抛出(throw)异常,若有异常抛出(throw),使用catch捕获异常。一个 try 至少要有一个与之对应的 catch。定义多个 catch 可以捕获不同的对象。PHP 会按这些 catch 被定义的顺序执行,直到完成最后一个为止。而在这些 catch 内,又可以抛出新的异常。

可能有点迷糊,这样说吧,上代码,

tyy{
//可能会出现错误的代码放到这里
}catch(Exception $e){
捕获到错误后的处理代码
}

太基础的也就不说了,说说自己遇到的,抛出了异常,一定要捕获(也可以自己定义顶级异常处理),不然会产生一个错误,

<?php
function a($a){
    if($a>5){
        echo "您输入的值是".$a;
    }else{
        throw new Exception("本方法只接受大于5的数据");
    }
}

function b($b){
    if($b<5){
        echo "您输入的值是".$b;
    }else{
        throw new Exception("本方法只接受大于5的数据");
    }
}
a(5);
以上代码会产生如下错误:

Fatal error: Uncaught exception 'Exception' with message '本方法只接受大于5的数据' in E:\WWW\pdemo\demo5.php:6
Stack trace:
#0 E:\WWW\pdemo\demo5.php(17): a(5)
#1 C:\Users\Administrator\AppData\Local\Temp\dummy.php(1): include('E:\\WWW\\pdemo\\de...')
#2 {main}
  thrown in E:\WWW\pdemo\demo5.php on line 6
很显然这不是我们想看到的,我们需要定义捕获这段异常的代码
<?php
function a($a){
    if($a>5){
        echo "您输入的值是".$a;
    }else{
        throw new Exception("本方法只接受大于5的数据");
    }
}

function b($b){
    if($b<5){
        echo "您输入的值是".$b;
    }else{
        throw new Exception("本方法只接受大于5的数据");
    }
}
try {
    a(5);
    echo "hello";
}catch (Exception $e){
    echo $e->getMessage()."<br />"; //获得异常信息
    echo $e->getCode()."<br />"; //获得异常代码
    echo $e->getFile()."<br />"; //获得异常文件
    echo $e->getLine()."<br />"; //返回异常行数
}

PHP的内置异常处理可以在手册/语言参考/异常处理里面找到


PHP中的异常处理机制深入讲解 1、异常概述 异常(Exception)是一种错误处理机制,用于在指定的错误发生时改变脚本的正常流程。 当异常被触发时,当前代码状态被保存,代码执行被切换到预定义的异常处理器函数(如果有) 根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本 2、异常的基本使用 当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 “catch” 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 “Uncaught Exception” ( 立即下载

相关推荐

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

zhulewen的博客 7884

PHP异常处理详解

PHP异常处理详解 异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。   异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生: 当前代码状态被保存 代码执行...

weixin_30517001的博客 446

Stable-Baselines3性能优化:多环境训练对比指南(DummyVecEnv vs SubprocVecEnv)

本文深入对比了Stable-Baselines3中DummyVecEnv与SubprocVecEnv两种向量化环境的性能差异与应用场景。DummyVecEnv适用于轻量级、步进快的环境,调试友好且开销低;而SubprocVecEnv则通过真正的多进程并行,能显著加速计算密集型环境的训练。文章通过基准测试与决策树,指导开发者根据环境计算成本、CPU核心数等关键因素做出最优选择,以实现训练效率最大化。

weixin_29063979的博客 147

php异常错误处理,php异常错误处理机制与错误处理

代码如下fopen('test.txt','r');//这里并没有对文件进行判断就打开了,如果文件不存在就会报错?>那么正确的写法应该如下:代码如下一、PHP错误处理的三种方式A、简单的die()语句;等价于exit();例:代码如下if(!file_exists('aa.txt')){die('文件不存在');} else {//执行操作}//如果上面die()被触发,那么这里echo接不...

weixin_30018111的博客 269

大模型LangChain面试题及参考答案(上)

明确的输入输出类型:函数参数需包含类型注解,返回值需定义清晰的数据结构(如JSON格式),便于LLM理解参数含义和调用方式。工具描述:通过文档字符串或独立的描述对象(如Tool类)说明函数的功能、参数用途及调用场景,供LLM判断是否需要调用。示例:定义一个计算两个数之和的工具函数@tool"""计算两个整数的和。参数:- a:第一个整数- b:第二个整数调用场景:当用户需要进行数值加法计算时使用。"""除了内置的。

大模型大数据攻城狮的专栏 1139

Parasoft C++Test软件单元测试_操作指南

本文主要为使用C++TEST进行单元测试的流程性操作讲解,后续文章将以专题形式进行详细讲解,以及用一些被测函数作为示例进行实例讲解。

文章主要涉及嵌入式软件开发、测试、项目管理等,欢迎交流,共同进步。 1574

PHP中的错误处理、异常处理机制详解

PHP中的错误处理、异常处理机制详解

qq_38472451的博客 99

Centos7系统添加中文支持(附中文语言包)

这里以centos7.6为例,在安装系统是没有选择中文,之后如果需要添加中文支持。在命令行执行后,会提示启动图形模式失败,转为启动文本模式。文本模式其实和图形模式差不多,操作需要用键盘而不是鼠标。在弹窗后,通过上下键选择Chinese(P.R of China) - 中文(简体):然后,按Tab键选择Yes,点击回车。rebootlocale可以看到系统语言已经变成了zh_CN.utf-8:之后,服务器上的中文名称就可以正常显示正常了。

悦分享 684

打开php的报错机制,PHP 错误和异常处理机制

七、php 的错误和异常处理机制7.1、错误处理7.1.1、使用简单的die语句if(!flie_exists("luluyii.text")){die("文件不存在');}else{//打开文件操作}file_exists("luluyii.txt")ordie("文件不存在");7.1.2、PHP error_reporting()错误控制函数功能详解(1)定义和用法:error_repo...

weixin_39523835的博客 253

042_小驰私房菜_MTK Camera yuv旋转90度方案

做旋转可以在app层接收到数据后,自行做旋转,也可以在hal层,针对yuv format这路流进行旋转。那我们做旋转也可以采用类似的方式。预览和录像是正常的,这个是因为预览和录像有方向相关属性可以调整,系统会根据摄像头mount的角度已经当前设备的方向,进行对应的旋转。这个下面这个文件,可以修改摄像头的mount角度。,可以看到前摄的Orientation是270,所以原始出图是做了90度的旋转。这个方案,思路就是在配流信息中,将rotation信息进行修改。注:本文章所用权归:小驰成长圈,禁止转载宣传!

587

基于Simulink的强化学习(DQN)自主调节占空比

摘要:本文介绍了一种基于Simulink的强化学习(DQN)方法,用于Buck变换器的自主占空比调节。通过建立马尔可夫决策过程模型,设计了包含状态、动作和奖励函数的强化学习框架,并在Simulink中实现了Buck主电路、RL接口模块和DQN智能体的集成。实验表明,相比传统PID控制,DQN方法在负载突变和输入跌落等复合扰动下表现出更好的鲁棒性,电压超调小于1%,恢复时间缩短至0.3ms。文章还详细讨论了关键设计技巧、工程挑战及对策,并提出了多目标优化、先进算法应用等扩展方向,为智能电源控制提供了新思路。

amy_mhd的博客 75

PHP5的异常处理机制

PHP5的异常处理机制[1]--本文索引作者: Matt Zandstra 翻译: Haohappy  04-8-20Haohappy@msn.com本文面向的读者简介在PHP5之前的错误处理-使用die()或trigger_error()-返回错误标记-使用PEAR处理错误PHP5的异常机制-使用throw关键字-try-catch语句-处理多个错误-自定义异常类型-异常的传递-更多异常的相关信

mfzhao的专栏 875

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

简述php异常处理机制,PHP异常处理机制

1、异常概述异常(Exception)是一种错误处理机制,用于在指定的错误发生时改变脚本的正常流程。当异常被触发时,当前代码状态被保存,代码执行被切换到预定义的异常处理器函数(如果有)根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本2、异常的基本使用当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。如果异...

weixin_42591413的博客 174

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

php异常处理的好处,如何使用PHP的异常处理机制

在各种语言里,异常(Exception)和错误(Error)的概念是不一样的。PHP里的异常,是程序运行中不符合预期的情况以及与正常流程不同的状况。所谓不正常的情况,就是说按照正常逻辑不该出错,但仍然出错的情况,这属于逻辑和业务流程的一种中断。PHP里的错误则属于自身问题,是一种非法语法或者环境问题导致的、让编译器无法正常运行的情况。PHP一旦遇到非正常代码,通常都会触发错误,而不会抛出异常。因此...

weixin_42134537的博客 274

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PHP异常处理机制

1、异常概述 异常(Exception)是一种错误处理机制,用于在指定的错误发生时改变脚本的正常流程。 当异常被触发时,当前代码状态被保存,代码执行被切换到预定义的异常处理器函数(如果有) 根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本 2、异常的基本使用 当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catc...

weixin_30566149的博客 199

php 错误处理机制,详细解读php的异常处理机制

异常机制一.异常基本知识1.定义:异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程,这过程称为异常.2.基本用法:try{//可能出现的错误(异常)代码}catch(Exception $e){//自己处理:捕捉异常并处理,//自己不处理:抛出一个异常,即如下:throw $e;}其中,Exception是异常类(php中定义好的一个类,具体参见php参考文档:语音参考->异常处...

weixin_39953100的博客 197

try catch php_PHP异常处理机制

1、异常概述异常(Exception)是一种错误处理机制,用于在指定的错误发生时改变脚本的正常流程。当异常被触发时,当前代码状态被保存,代码执行被切换到预定义的异常处理器函数(如果有)根据情况,处理器也许会从保存的代码状态重新开始执行代码,终止脚本执行,或从代码中另外的位置继续执行脚本2、异常的基本使用当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。如果异...

weixin_39582708的博客 166

详细解读php的异常处理机制

异常机制   一.异常基本知识 1.定义:异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程,这过程称为异常. 2.基本用法:  try {  //可能出现的错误(异常)代码  }  catch(Exception $e) { //自己处理:捕捉异常并处理, //自己不处理:抛出一个异常,即如下:   throw $e; }   其中,Exception是

韦小宝叔叔的博客 713

PHP中如何结合错误与异常处理机制?

本文探讨PHP中错误与异常处理机制的结合应用。介绍了错误报告设置、异常处理机制的具体实现方法,提出四项实践建议:合理配置错误报告级别、使用try-catch捕获异常、优化代码结构、借助第三方工具。这些措施能有效提升PHP程序的稳定性和可靠性,减少系统崩溃风险。

searchboy2025的博客 35

什么是PHP中的异常处理机制?

在PHP中,异常处理是一种机制,用于处理运行时错误和异常情况,以确保代码的健壮性和可维护性。PHP提供了一套异常处理工具,允许您定义、抛出、捕获和处理异常,以更优雅地处理错误情况。PHP的异常处理机制有助于提高代码的可靠性,使您能够更容易地识别和处理错误情况。通过定义自定义异常类,您可以更好地组织和管理代码中的异常情况。您可以使用这个变量来访问异常的信息,如错误消息、错误代码等。块,它包含在无论是否发生异常的情况下都要执行的代码。异常通常是一个类的实例,它承载了关于错误的信息。块,其中可以处理异常。

周祥平程序专栏 478

到底为什么PHP 的异常处理机制支持多级继承?

想象一下,你有一个玩具盒(异常处理机制),里面装满了各种玩具(异常)。如果某个玩具坏了(发生了错误),你需要一个工具来告诉你是哪个玩具出了问题。以下是一个完整的示例,展示如何使用多级继承的异常处理机制,并附上详细注释。

长风破浪会有时的博客 767
下一篇: 关于路径"/" “./” “../” "/" ""的区别
键盘钢琴师
博客等级 码龄11年 21粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值