当前位置: 首页 > news >正文

认识Java中的异常(半成品)

1.异常的概念与体系结构

1.1在Java中,将程序执行过程中发生的不正常行为称为异常.比如

1.算数异常

public class Main1 {public static void main(String[] args){System.out.println(10/0);}
}
//异常信息为:Exception in thread "main" java.lang.ArithmeticException: / by zero
//	            at Object1.work.error.Main1.main(Main1.java:5)

 2.数组越界异常

public class Main1 {public static void main(String[] args){int[] auto = new int[10];System.out.println(auto[100]);}
}
//异常信息为:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 100
//	            at Object1.work.error.Main1.main(Main1.java:6)

3.空指针异常 

public class Main1 {public static void main(String[] args){int[] arr = null;System.out.println(arr.length);}
}
//异常信息为:Exception in thread "main" java.lang.NullPointerException
//	          at Object1.work.error.Main1.main(Main1.java:6)

上述过程中我们可以看见Java中不同类型的异常都有,不同的描述方式

1.2异常的体系结构

异常的种类繁多,为了对不同异常或者错误进行很好的分类管理,Java内部维护了一个异常的专门体系结构:

大致可以分为两个大方向

Throwable:异常的主类

Error:是指Java虚拟机无法解决的严重问题

Exception:异常产生后程序员可以通过代码进行处理,是程序继续执行. 

1.3异常的分类

异常可能在编译的时候发生,也可能在程序运行的时候发生,但根据时间的不同,异常可以被分类为:

1.编译时的异常(受检查异常)

2.运行时的异常(非受检查异常)

2.异常处理

2.1防御式编程

1.LBYL:Look Before You Leap.在操作前就做充分的检查

public class Main1 {public static void main(String[] args){boolean ret = false;if(!ret){//处理登录异常的相关代码return;}//登录游戏if(!ret){//处理游戏匹配异常的相关代码return;}//进入游戏}
}

像上述代码就是属于,防御型的异常处理,在我们为了防止异常的出现提前设置好相应异常的处理方式. 这种代码格式会使正常的代码和处理错误的代码混和在一起,显的代码比较混乱

2.EAFP:先操作,遇到问题在处理,即:事后认错型

这种操作的优势在于:正常的流程和错误的流程是分开操作的,我们更加关注正常流程

在java中,异常处理的主要的5个关键字分别是: throw,try,catch,final,throws.

2.2异常的抛出

在编写程序的时候,如果程序出现错误,我们需要把错误信息返回给此信息的调用者

在Java中可以通过throw关键字,抛出一个指定的异常对象,把错误信息告诉调用者

throw new xxxxException("异常产生的原因");

需求:实现一个获取数组中任意位置元素的方法

public class Main2 {public static int getElement(int[] array, int index){if(null == array){throw new NullPointerException("传递的数组为 null");}if(index < 0 || index >=array.length){throw new IndexOutOfBoundsException("数组索引越界");}return array[index];}public static void main(String[] args) {int[] array = {1,2,3,4,5};getElement(array,9);}
}

当array数组为"null"和数组索引越界时都会发生报错报错信息是根据各自抛出的throw中的内容.

注意事项:

1.throw必须写在方法体的内部

2.抛出的对象必须是Exception或者是Exception的子类对象

3.如果抛出的是RunTimeException或者是RunTimeException的子类,我们可以不用处理交给jvm处理就行

4.如果抛出的异常是编译的异常,必须要用户处理,否则无法通过编译

5.异常一旦抛出后面的代码是不会继续执行的

2.3异常的捕获

异常的捕获,也就是异常的具体的处理方式,通常有两种,throws以及try-catch捕获处理

2.31 异常声明throws

当方法中抛出编译异常的时候,用户不想处理该异常,此时可以借助throws将异常抛给方法的调用者来处理,就是说:当前方法不处理异常,提醒方法的调用者来处理该异常.

单独使用throw出现异常会让程序终止

public class Main3 {private static double divide(double a,double b){if(b == 0){throw new ArithmeticException("不能以0为除数");}return a/b;}public static void main(String[] args) {System.out.println(divide(10,0));}
}
// 输出结果:
// Exception in thread "main" java.lang.ArithmeticException: 不能以0为除数
// 	at Object1.work.error.Main3.divide(Main3.java:3)
// 	at Object1.work.error.Main3.main(Main3.java:7)

使用try-catch进行结合处理 

public class Main3 {private static double divide(double a,double b){if(b == 0){throw new ArithmeticException("不能以0为除数");}return a/b;}public static void main(String[] args) {System.out.println("抛出异常");try{//把也能抛出异常的代码放进try块中System.out.println(divide(10,0));}catch(ArithmeticException e){//捕获异常并打印异常信息System.out.println("捕获到的异常信息为:"+e.getMessage());}System.out.println("异常抛出后");}
}
// 输出结果:
// 抛出异常
// 捕获到的异常信息为:不能以0为除数
// 异常抛出后

可以看出程序是正常进行的并没有影响的程序的正常进行,可以理解为,自己抛出的异常被自己给处理掉了.

public class Main3 {private static double divide(double a,double b){if(b == 0){throw new ArithmeticException("不能以0为除数");}return a/b;}private static void func1(){divide(10,0);}private static void func2(){//func2()调用了func1(),如果func1()抛出了异常,func2()也会抛出异常func1();}public static void main(String[] args) {System.out.println("抛出异常");try{//把也能抛出异常的代码放进try块中func2();}catch(ArithmeticException e){//捕获异常并打印异常信息System.out.println("捕获到的异常信息为:"+e.getMessage());}System.out.println("异常抛出后");}
}

也可以通过方法之间进行调用先调用func2()通过func2()在去调用func1() 

 

public class Main4 {public static void main(String[] args) {try{int a = 10/0;}catch(ArithmeticException e){System.out.println("发生算数异常");}catch(NullPointerException e){System.out.println("发生空指针异常");}catch(ArrayIndexOutOfBoundsException e){System.out.println("发生数组越界异常");}}
}

产生的异常如果try下面出现多个catch它会依次进行匹配匹配到相应的错误信息后会打印出相关的错误内容,如果catch中没有相对应的异常时,就会交给jvm处理程序终止.

public class Main5 {public static void main(String[] args) {int[] arr = new int[5];try{System.out.println(arr[6]);}catch(ArithmeticException e){System.out.println("发生算数异常");} catch(NullPointerException e){System.out.println("发生空指针异常");}catch(ArrayIndexOutOfBoundsException e){System.out.println("发生数组越界异常");}catch(Exception e){System.out.println("发生其他异常");}}
}
//输出结果
//发生数组越界异常
public class Main5 {public static void main(String[] args) {int[] arr = new int[5];try{System.out.println(arr[6]);}catch(ArithmeticException e){System.out.println("发生算数异常");} catch(NullPointerException e){System.out.println("发生空指针异常");}catch(Exception e){System.out.println("发生其他异常");}}
}
//输出:
//发生其他异常
public class Main5 {public static void main(String[] args) {int[] arr = new int[5];try{System.out.println(arr[6]);}catch(Exception e){System.out.println("发生其他异常");}catch(ArithmeticException e){System.out.println("发生算数异常");} catch(NullPointerException e){System.out.println("发生空指针异常");}}
}
//发生报错无法正常进行

 

 通过上述代码进行比较:我们可以看出我们可以使用Exception来进行处理抛出的异常,但是用Exception是无法准确表达异常信息的一般我们是不建议使用的,还有就是Exception是上面三个异常的父类,而在catch时 Exception是是不能放在它子类前面的否则会发生报错

 

相关文章:

认识Java中的异常(半成品)

1.异常的概念与体系结构 1.1在Java中,将程序执行过程中发生的不正常行为称为异常.比如 1.算数异常 public class Main1 {public static void main(String[] args){System.out.println(10/0);} } //异常信息为:Exception in thread "main" java.lang.ArithmeticExc…...

Sqoop 指令语法手册

目录 help指令list-databases参数描述示例 codegen参数描述 Sqoop create-hive-table参数描述 eval参数描述 Export参数描述 import参数描述 import-all-tables参数描述 import-mainframe参数描述 job参数描述 list-tables参数描述 merge参数描述 help指令 sqoop help 下面的S…...

网络安全 - SQL Injection

1.1.1 摘要 日前&#xff0c;国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布&#xff0c;600万用户的登录名及密码被公开泄露&#xff0c;随后又有多家网站的用户密码被流传于网络&#xff0c;连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。 网络…...

spi 发送与接收 移位写法

spi _tx 发送模块 片选信号cs可以在top顶层控制模块产生 timescale 1ns / 1psmodule spi_rom#(parameter SIZE 8 )(input wire clk ,input wire rst_n,input wire [SIZE-1:0] data ,input wire …...

MyBatis关联映射

目录 一、什么是关联注解&#xff1f; 二、数据库建表 1.学生表 2.教师表 三、一般查询 &#xff08;1&#xff09;创建StudentTeacher类 &#xff08;2&#xff09;mapper层 &#xff08;3&#xff09;Dao接口 &#xff08;4&#xff09;Test类 &#xff08;5&#x…...

通过华为鲲鹏认证的软件产品如何助力信创产业

软件通过华为鲲鹏认证与信创产业有着密切的联系。鲲鹏认证是华为推动信创产业发展的一项重要举措&#xff0c;通过该认证&#xff0c;软件可以在华为的生态系统中实现更好的兼容性和性能优化&#xff0c;从而推动信创产业的全面发展和国产化替代。 鲲鹏认证的定义和重要性 鲲…...

陈志刚解读:国家数据基础设施建设解读(附下载)

本期分享陈志刚解读&#xff1a;国家数据基础设施建设解读&#xff0c;从背景意图、概念内涵、发展愿景与总体功能、总体架构、重点方向、算力底座、网络支撑、安全防护和组织保障十个方面展开&#xff0c;共52页ppt。 加入星球可获取完整版资料 篇幅限制&#xff0c;部分内容…...

QT 中 sqlite 数据库使用

一、前提 --pro文件添加sql模块QT core gui sql二、使用 说明 --用于与数据库建立连接QSqlDatabase--执行各种sql语句QSqlQuery--提供数据库特定的错误信息QSqlError查看qt支持的驱动 QStringList list QSqlDatabase::drivers();qDebug()<<list;连接 sqlite3 数据库 …...

VPN设备

定义: 虚拟专用网络指的是在公用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个VPN网络的任意两个节点之间的连接并没 有传统专网所需的端到端的物理链路&#xff0c;而是架构在公用网络服务商所提供的网络平台之上的逻辑网络&#xff0c;用户数据在逻辑链路中传输…...

centos部署SkyWalking并在springcloud项目中用法举例

文章目录 场景SkyWalking介绍部署部署Storage [单机版Elasticsearch]部署SkyWalking OAP [下载地址](https://skywalking.apache.org/downloads/#SkyWalkingAPM)部署SkyWalking Java AgentspringCloud 使用举例 场景 SkyWalking是应用性能监控平台&#xff0c;可用于分布式系统…...

[创业之路-186]:《华为战略管理法-DSTE实战体系》-1-为什么UTStarcom死了,华为却活了,而且越活越好?

目录 前言 一、市场定位与战略选择 二、技术创新能力 三、企业文化与团队建设 四、应对危机的能力 五、客户为中心的理念 六、市场适应性与战略灵活性 七、技术创新与研发投入 八、企业文化与团队建设 九、应对危机的能力 前言 UT斯达康&#xff08;UTStarcom&#…...

算法设计5_分支限界法

分支限界法 分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树&#xff0c;裁剪那些不能得到最优解的子树以提高搜索效率。 步骤&#xff1a; ① 定义解空间(对解编码); ② 确定解空间的树结构&#xff1b; ③ 按BFS等方式搜索&#xff1a; a.每个活…...

【设计模式系列】状态模式(二十三)

一、什么是状态模式 状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;其核心目的是管理一个对象在其内部状态改变时的行为变化&#xff0c;其核心理念是将对象的行为和状态分离。这种模式通过将每个状态相关的行为封装在独立的类中&#xff0c;使…...

github创建发布分支

创建一个名为 latest 的分支&#xff0c;并将其作为稳定版本分支。以下是操作步骤&#xff1a; 1. 创建 latest 分支 首先&#xff0c;确保你在 master 分支&#xff08;或当前的稳定版本分支&#xff09;上&#xff0c;并且已经提交了所有更改。然后&#xff0c;你可以创建一…...

【Linux】网络服务

声明&#xff0c;以下内容均学习自《Linux就该这么学》一书 1、创建网络会话 Linux系统使用NetworkManager提供网络服务&#xff0c;它是一种动态管理网络配置的守护进程&#xff0c;能够让网络设备保持连接状态。 nmcli nmcli是一款基于命令行的网络配置工具&#xff0c;它…...

错题:Linux C语言

题目&#xff1a;手写代码&#xff1a;判断一个数&#xff08;int类型的整数&#xff09;中有有多少1 题目&#xff1a;手写代码&#xff1a;判断一个数(转换成二进制表示时)有几个1 #include <stdio.h> int main(int argc, const char *argv[]) { //判断一个数&#xf…...

机器学习期末速成

文章参考自B站机器学习期末速成课 本文仅作者个人复习使用 一、机器学习分类 聚类和分类的区别&#xff1a; 分类&#xff1a;一开始就知道有哪些类别 聚类&#xff1a;一开始不知道有哪些类别 损失函数&#xff1a;简单来说就是你预测出来的结果和真实值的差距。 0-1损失函数…...

【学习总结|DAY015】Java面向对象高级-抽象类、接口

引言 在今天的课程中&#xff0c;我们详细探讨了 Java 编程语言的几个核心特性&#xff1a;多态、final 关键字、抽象类和接口。这些概念是面向对象编程的基础&#xff0c;对于构建健壮、可维护的应用至关重要。本文将通过具体的例子和解释帮助大家更好地掌握这些知识点。 一…...

单词拼写纠正-04-161.力扣 相隔为 1 的编辑距离

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法&#xff0c;如果提升 100W 倍的性能&#xff1f; NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正&#xff1f;可我只会写 CRUD 啊&#xff01; 一个提升英文单词拼…...

深入理解 NumPy 广播机制:从基础到应用

目录 什么是广播机制&#xff1f;广播机制的规则广播机制示例1. 一维数组与标量运算2. 二维数组与一维数组运算3. 维度不同的数组运算4. 广播失败的情况 广播机制的实际应用场景1. 数据归一化2. 批量计算欧氏距离 总结广播机制的核心要点&#xff1a; 在使用 NumPy 进行数组操作…...

Springboot(五十三)SpringBoot3整合redisson

前边我们有记录Springboot2/3整合redis的方式。是基于Springboot默认集成的Lettuce客户端实现的。 今天我们在项目中集成的redission是在Lettuce之上构建的redis客户端。 Redisson:一个在Jedis和Lettuce之上构建的Redis客户端。提供了一系列分布式Java对象和服务,比如:分布式…...

UAC2.0 speaker——带反馈端点的 USB speaker(16bit 单声道)

UAC2.0 speaker 系列文章 UAC2.0 speaker——单声道 USB speaker(16bit) UAC2.0 speaker——类特殊请求 UAC2.0 speaker——音量控制 UAC2.0 speaker——多采样率支持 UAC2.0 speaker——24/32bit 支持 UAC2.0 speaker——speaker 数据传输 UAC2.0 speaker——同时支持 16bi…...

P2562 [AHOI2002] Kitty猫基因编码

P1498P2562 [AHOI2002] Kitty猫基因编码 #include <iostream> using namespace std; #include <cmath> #include <vector> #include <string> string encode(string str){if(str.find("0") string::npos) return "B";if(str.fin…...

HarmonyOS(65) ArkUI FrameNode详解

Node 1、Node简介2、FrameNode2.1、创建和删除节点2.2、对FrameNode的增删改2.3 FramNode的查询功能3、demo源码4、总结5、参考资料1、Node简介 在HarmonyOS(63) ArkUI 自定义占位组件NodeContainer介绍了自定义节点复用的原理(阅读本本篇博文之前,建议先读读这个),在Node…...

40分钟学 Go 语言高并发:负载均衡与服务治理

负载均衡与服务治理 一、知识要点总览 模块核心内容技术实现难度负载策略轮询、权重、最小连接数自定义负载均衡器中服务降级服务降级、熔断降级、限流降级Hystrix模式高熔断机制熔断器状态机、失败计数、自动恢复Circuit Breaker高限流设计令牌桶、滑动窗口、计数器Rate Lim…...

Python 从入门到实战45(Pandas数据操作)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们学习了pandas数据读写的相关基础知识。今天学习一下…...

node js 历史版本下载

此为node历史版本下载地址 https://nodejs.org/dist/https://nodejs.org/dist/...

无代码探索AI大模型:腾讯云函数计算的卓越实践

在数字化转型的浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;技术已经成为企业提升竞争力的关键。然而&#xff0c;对于许多业务人员来说&#xff0c;技术门槛高、开发周期长等问题限制了他们快速探索和应用AI大模型的能力。同时&#xff0c;对于缺乏GPU资源的开发者来…...

网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术

网页数据抓取&#xff1a;融合BeautifulSoup和Scrapy的高级爬虫技术 在当今的大数据时代&#xff0c;网络爬虫技术已经成为获取信息的重要手段之一。Python凭借其强大的库支持&#xff0c;成为了进行网页数据抓取的首选语言。在众多的爬虫库中&#xff0c;BeautifulSoup和Scra…...

vivado中,generate output product 和Create HDL wrapper的作用

generate output product 以zynq的ip核举例&#xff0c;没有generate output product之前&#xff0c;在ip source 什么也看不到。 但是同样的一个ip核&#xff0c;generate output product之后&#xff0c;会生成综合&#xff0c;布线和仿真文件&#xff0c;约束文件等等。 …...

欧盟R156法规注意事项及实例展示

欧盟 R156 法规即《关于批准车辆的软件升级和软件升级管理体系统一规定的法规》&#xff0c;其注意事项及实例如下&#xff1a; 注意事项&#xff1a; 软件升级管理体系方面&#xff1a; 体系建立与维持&#xff1a;汽车制造商和供应商必须建立完善的软件升级管理体系&#xff…...

HTML语义化的案例分析

HTML语义化的案例分析&#xff1a;对比实际网站中语义化与非语义化标签的差异 在现代Web开发中&#xff0c;HTML语义化被广泛认为是提升网页结构和可访问性的重要做法。HTML语义化不仅仅是为了让代码更清晰&#xff0c;更是为了增强搜索引擎优化&#xff08;SEO&#xff09;&a…...

使用 pyperclip 进行跨平台剪贴板操作

简介&#xff1a;pyperclip 是一个轻量级的 Python 库&#xff0c;支持在不同操作系统&#xff08;Windows、macOS、Linux&#xff09;中进行剪贴板的复制和粘贴。这个库的设计简单易用&#xff0c;非常适合需要频繁进行文本复制粘贴操作的场景。 历史攻略&#xff1a; 使用f…...

微信小程序报错:http://159.75.169.224:7300不在以下 request 合法域名列表中,请参考文档

要解决此问题&#xff0c;需打开微信小程序开发者工具进行设置&#xff0c;打开详情-本地设置重新运行&#xff0c;该报错就没有啦...

Java:181 基于springboot的考编论坛管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本系统一共管理员&#xff0c;用户角色。 主要功能&#xff1a;收货地址管理、经验交流平台管理、公告信息管理、跳蚤市场管理、商品留言管理、商品订…...

通义千问sft-甄嬛对话

流程步骤 https://www.datawhale.cn/activity/110/21/76?rankingPage1 按照上面的流程&#xff0c;准备好数据之后就可以直接对7b的模型进行指令微调了&#xff0c;整个流程不是很复杂&#xff0c;操作起来比较方便。但是发布服务等了较长时间&#xff0c;以为出了bug 结果展…...

如何配置Jackson以忽略Java类中为null或空(empty)的字段

Jackson库提供了JsonInclude注解和ObjectMapper配置选项&#xff0c;可以用来控制是否在JSON输出中包含null或空值的字段。 默认情况下&#xff0c;Jackson会包含所有字段&#xff0c;不论其值为何。 本教程将展示如何使用Include.NON_NULL来忽略null值字段&#xff0c;以及使…...

设置笔记本同时连接内外网

原理&#xff1a;通过笔记本和手机相连&#xff0c;实现双网卡功能能。笔记本连接内网wifi、同时手机端开启usb网络共享&#xff0c;笔记本就有了两个网&#xff0c;然配置那个访问外网&#xff0c;那个访问内网。 1.笔记本wifi连接内网wifi 2.手机端共享网络。 手机打开 -【…...

让文章更具说服力:如何巧妙运用逻辑

在写作的过程中&#xff0c;不论是创作小说、撰写学术论文&#xff0c;还是撰写营销文案&#xff0c;逻辑的运用都至关重要。一个没有逻辑支撑的文章&#xff0c;很容易让读者产生困惑、迷失方向&#xff0c;甚至失去阅读兴趣。因此&#xff0c;如何巧妙地运用逻辑&#xff0c;…...

阿里云云服务器Docker-Execrise

申请云服务器 阿里云每个人可以免费申请三个月的使用的服务器可以用作学习使用建议申请规格2核4g的&#xff0c;2g的有点捉襟见肘了选择服务器建议alibaba-linux服务器&#xff0c;就是linux&#xff1b;选择windows可能由于2核4g的限制&#xff0c;docker不匹配系统起码我就是…...

解决 MySQL 启动失败与大小写问题,重置数据库

技术文档&#xff1a;解决 MySQL 启动失败与大小写问题&#xff0c;重置数据库 1. 问题背景 在使用 MySQL 时&#xff0c;可能遇到以下问题&#xff1a; MySQL 启动失败&#xff0c;日志显示 “permission denied” 或 “Can’t create directory” 错误。MySQL 在修改配置文…...

启智畅想集装箱箱号识别算法,2台相机即可实现较高识别率

启智畅想集装箱箱号识别算法&#xff0c;在货车通道中使用时&#xff0c;一般配备2台相机即可。启智畅想集装箱箱号识别算法&#xff0c;在货车通道中使用时&#xff0c;一般配备2台相机即可实现对集装箱箱号的精准捕捉与识别。这两台相机分别安装在货车通道的后侧和随意侧面&a…...

【C++】指针与智慧的邂逅:C++内存管理的诗意

文章目录 RAII 智能指针auto_ptrunique_ptr shared_ptr模拟实现定制删除器循环引用 和 weak_ptr RAII RAII&#xff08;Resource Acquisition Is Initialization&#xff09;是一种广泛应用于 C 等编程语言中的编程范式&#xff0c;它的核心思想是&#xff1a;资源的获取和释放…...

python中的高阶函数

1、什么是高阶函数&#xff1f; 高阶函数是指将函数作为参数传入。就是高阶函数 2、高阶函数有哪些&#xff1f; map 映射函数 >>> print(list(map(lambda x:x*x,range(1,11)))) [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>> print(list(map(lambda x:st…...

spark关联hive 报 Filesystem Close 错误

请看如下问题&#xff1a; 假如我想将一个sql语句插入hive表中时&#xff0c;比如 insert into table tmp.app_user_active_range partition (dt2022-11-04) 报如下错误&#xff1a; 我的环境是pyspark&#xff0c;pyspark中操作hive,使用datagrip关联spark&#xff0c;在da…...

MySQL主从同步详解

文章目录 MySQL主从同步概述MySQL主从同步原理MySQL主从同步结构模式MySQL主从同步搭建搭建步骤一主一从实验环境master主机slave1主机验证主从同步 一主多从master主机slave2主机验证主从同步 MySQL主从同步复制模式 读写分离技术MaxScale简介部署MaxScale服务器授权用户maste…...

Python 单元测试基础脚本

单元测试的概念&#xff1a; 单元测试是针对程序中最小可测试单元进行检查和验证的过程。在Python中&#xff0c;通常一个函数或方法就是一个测试单元。 unittest框架&#xff1a; Python自带了一个名为unittest的单元测试框架&#xff0c;它受JUnit启发&#xff0c;为开发者提…...

鸿蒙开发-在ArkTS中实现socket功能

基本概念 在 ArkTS 中实现 Socket 功能主要涉及到网络通信中的套接字(Socket)编程。Socket 是一种用于在不同设备(如客户端和服务器)之间进行双向通信的接口&#xff0c;它允许应用程序发送和接收数据。在网络编程中&#xff0c;有两种主要的 Socket 类型&#xff1a;基于 TCP…...

【设计模式系列】策略模式(二十四)

一、什么是策略模式 策略模式&#xff08;Strategy Pattern&#xff09;是软件设计模式中的一种行为型模式。它定义了一系列算法&#xff0c;并将每一个算法封装起来&#xff0c;使它们可以互换使用&#xff0c;算法的变化不会影响使用算法的用户。策略模式让算法的变化独立于…...

D92【python 接口自动化学习】- pytest基础用法

day92 pytest的skip和skipif用法 学习日期&#xff1a;20241208 学习目标&#xff1a;pytest基础用法 -- pytest的skip和skipif用法 学习笔记&#xff1a; 测试用例跳过 skip和skipif用法&#xff0c;测试用例跳过 pytest.mark.skip 跳过标记的用例 pytest.mark.skipif(1 …...