首页 > 编程语言 >直播软件源码,异常偶有发生我们该如何处理?

直播软件源码,异常偶有发生我们该如何处理?

时间:2024-03-16 09:44:27浏览次数:13  
标签:偶有 代码 except try 直播 res print 异常 源码

直播软件源码,异常偶有发生我们该如何处理?

初识异常

异常与异常处理:

  • 异常既错误
  • 异常会导致程序崩溃并停止运行
  • 异常处理可以捕获到异常,将异常部位的程序进行处理使得直播软件源码继续正常运行

异常处理的结构由 try-except 代码块组成

try:
    代码块 #被try关键字检查并保护的代码
except <异常类型> # try关键字检查的代码可能出现的异常的种类
    代码块 # try关键字检查的代码出现异常后执行的代码

 

def upper(str_data):
    new_str = str_data.upper()
    return new_str

res = upper('hero')
print(res)

 

在这里插入图片描述
调用 upper 函数时,传入字符串,函数可以正常执行,如果传入数字则会报错

res_01 = upper(111)
print(res_01)

res_02 = upper('hello')
print(res_02)

 

在这里插入图片描述
错误代码后面的代码无论正确与否一旦出现异常,程序就会终止,这个时候就需要对这段可能会出错的代码进行异常处理,确保直播软件源码能正常运行。

def upper(str_data):
    new_str = ''
    try:
        new_str = str_data.upper()
    except:
        print('程序执行出现问题')
    return new_str

 

在这里插入图片描述
对函数中可能出现异常的代码进行了异常处理,程序可以正常执行。

捕获异常

可以对try-except代码中的异常进行捕获,再不确定是那种异常的情况下可以使用异常的基类Exception进行捕获

def divid(x, y):
    res = 0
    try:
        res = x / y
    except Exception as e:
        print(e)
    return res



res = divid(1, 2)
print(res)

res_01 = divid(1, 0)
print(res_01)

res_02 = divid(10, 2)
print(res_02)

 

在这里插入图片描述
不使用try-except异常处理,执行函数,查看控制台打印出的具体异常

def divid(x, y):
    res = x / y
    return res

 

在这里插入图片描述
可以看出控制塔打印的异常为 “ZeroDivisionError: division by zero”,如果可以确定具体的异常类型,也可以在except关键字后捕获具体的异常

def divid(x, y):
    res = 0
    try:
        res = x / y
    except ZeroDivisionError as e:
        print(e)
    return res

 

在对列表和字符串进行索引操作时还会出现索引超出范围异常,使用这个异常看能否不会divid函数中的异常

def divid(x, y):
    res = 0
    try:
        res = x / y
    except IndexError as e:
        print(e)
    return res

 

在这里插入图片描述
直播软件源码运行还是出错,这是因为异常类型不匹配,所以没有捕获到,在进行异常处理时如果可以确定具体的异常类型就使用具体的异常类型,如果不确定就是用基类异常,使用的异常不匹配程序仍然不能正确执行

捕获多个异常

可以通过连续添加except代码块的方式捕获多个异常。

try:
    # 代码块
except Eexception1 as e1:
    # 代码块
except EXception2 as e2:
    # 代码块
except EXception3 as e3:
    # 代码块

 

当 except 代码块有多个的时候,当异常类型匹配后,就不会继续往下捕获,也可以使用元组将所有待捕获的异常存起来。

try:
    # 代码块
except (Eexception1, Exception2, Exception3) as e:
    # 代码块

 

def divid(x, y):
    res = 0
    try:
        res = x / y
    except (IndexError, NameError, ZeroDivisionError) as e:
        print(e)
    return res

 

或者

def divid(x, y):
    res = 0
    try:
        res = x / y
    except IndexError as e:
        print(e)
    except NameError as e2:
        print(e2)
    except ZeroDivisionError as e3:
        print(e3)
    return res

 

以上就是直播软件源码,异常偶有发生我们该如何处理?, 更多内容欢迎关注之后的文章

 

标签:偶有,代码,except,try,直播,res,print,异常,源码
From: https://www.cnblogs.com/yunbaomengnan/p/18076728

相关文章

  • 直播带货源码,异步处理中会处理两次请求
    直播带货源码,异步处理中会处理两次请求从序列图上可以看到SpringMVC在处理异步请求时,DispatcherServlet会处理两次请求具体来看HandlerAdapter的处理过程//根据HandlerMethod解析参数并完成过程调用得到一个ModelAndViewprivateModelAndViewinvokeHandleMethod(Ht......
  • 视频直播系统源码,异步处理实现代码分析
    视频直播系统源码,异步处理实现代码分析@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{System.out.println("doget");method3(request,response);}/***使用asyncConte......
  • springboot仓库管理系统(附:源码+课件)
    项目介绍:管理员system123456客户表(ID客户名称邮编客户地址客户电话联系人联系人电话开户行账号邮箱)供应商表(ID供应商名称邮编供应商地址供应商电话联系人联系人电话开户行账号邮箱)商品表(ID商品名称供应商产地商品规格商品包装生产批号批准文号商......
  • 【毕设级项目】基于嵌入式的智能家居控制板(完整工程资料源码)
    基于嵌入式的智能家居控制板演示效果基于嵌入式的智能家居控制板前言:        随着科技的不断进步,物联网技术得到了突飞猛进的发展。智能家居是物联网技术的典型应用领域之一。智能家居系统将独立家用电器、安防设备连接成一个具有思想的整体,实现家居设备的智能管......
  • 宠物医院管理系统{源码+报告}
    目      录1绪论1.1课题背景1.2 课题研究的现状1.3 课题研究的意义2 需求分析2.1 需求描述2.2 需求功能描述2.3 用例模型2.3.1 业务用例模型2.3.2 系统用例模型2.4 动态模型2.4.1 项目泳道图2.4.2 业务泳道图2.5 静态类模型......
  • [原创] KCP 源码解析(下)
    ikcp_input先从下层协议将数据读出来,并将对应的包头信息解析出来,根据不同的包头命令进入不同的处理逻辑。intikcp_input(ikcpcb*kcp,constchar*data,longsize){ IUINT32prev_una=kcp->snd_una; IUINT32maxack=0, //收到的这组包里最大的ack latest_ts=0......
  • 基于springboot的图书推荐管理系统、图书借阅管理系统,附源码+数据库+论文+PPT,包远程安
    1、项目介绍本论文主要论述了如何使用JAVA语言开发一个图书个性化推荐系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述图书个性化推荐系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系......
  • MyBatis中经典的五种设计模式源码剖析,打死都不要忘记!
    MyBatis3.5版本中也广泛使用了多种设计模式,下面是其中一些主要使用的设计模式MyBatis一、构建器模式二、工厂模式三、代理模式四、模板方法模式五、装饰器模式六、代理模式一、构建器模式XMLConfigBuilder:用于解析MyBatis配置文件XMLMapperBuilder:用于解析......
  • Java访问者模式源码剖析及使用场景
    访问者模式一、介绍二、报表系统开发三、MyBatis中如何使用访问者模式?一、介绍Java中的访问者(Visitor)模式是一种行为型设计模式,它将数据结构与数据操作分离,使得在不修改数据结构的情况下可以增加新的操作。该模式主要包含以下几个角色:抽象访问者(Visitor):定......
  • ThreadLocal源码解析
    ThreadLocalpublicvoidset(Tvalue){Threadt=Thread.currentThread();ThreadLocalMapmap=getMap(t);if(map!=null)//map不为null,之前设置过情况map.set(this,value);elsecreateMap(t,value);}privatevoidset......