首页 > 其他分享 >异常处理及其相关知识点

异常处理及其相关知识点

时间:2024-08-04 20:16:53浏览次数:12  
标签:知识点 pythonProject 处理 except else 报错 print 异常

写代码的时候,对于那些不确定会报什么错误或者说感觉可能会报错的地方,才会用到异常处理。但是切记,一般情况下不要用,毕竟这玩意影响代码的可读性,毕竟是你写代码的时候附加的逻辑。

正本清源
很多人以为只有try .. except这种代码逻辑才是异常处理,我只能说大傻逼,懂个锤子。
难道if .. elif .. else这种形式就不是异常处理了???啊?回答我。

言归正传,其实if和except两种方式都可以,只不过建议用except,因为更简洁。

直接上代码:
try:
    num=input('请输入一个数字:')
    int(num)
except ValueError as e:
    print(e)
输出:
D:\python_s3\pythonProject\pythonProject\.venv\Scripts\python.exe D:\python_s3\pythonProject\pythonProject\day29\test.py 
请输入一个数字:dlja
invalid literal for int() with base 10: 'dlja'

Process finished with exit code 0

上面的代码还可以改成多分支的情况:

try:
    num=input('请输入一个数字:')
    int(num) #主函数
except ValueError as e:
    print(e)
except KeyError as e:
    print(e)
#下面这条是万能语句,意思是上面那两个except都对应不上,直接找Exception。也可以直接用Exception
except Exception as e:
    print(e)
#下面的else和if..else中的else完全是两个概念,这里的else是指当try中的内容没有报错时执行else的内容。
else:
    print('当主函数没有报错时执行')
finally:
    print('不管主函数有没有报错,这条语句都会执行')

其实异常处理的内容一般情况下也不使用,会用就行了。
接下来,再教给你们一个高端玩法,自定义一个异常,看好了。

class MyExcept(BaseException):
    def __init__(self,msg):
        self.msg=msg

raise MyExcept('自制的异常类型')
输出结果:
Traceback (most recent call last):
  File "D:\python_s3\pythonProject\pythonProject\day29\test.py", line 5, in <module>
    raise MyExcept('自制的异常类型')
__main__.MyExcept: 自制的异常类型

关于异常处理的部分就讲到这里。

标签:知识点,pythonProject,处理,except,else,报错,print,异常
From: https://www.cnblogs.com/kkbest/p/18342149

相关文章

  • 确保Apache Flink流处理的数据一致性和可靠性
    ApacheFlink是一个用于大规模数据流处理的开源框架,它提供了多种机制来保证在分布式环境中数据的一致性和可靠性。在实时流处理中,数据的一致性和可靠性是至关重要的,因为它们直接影响到数据处理结果的准确性和系统的稳定性。本文将详细介绍Flink如何通过不同的机制和策略来确......
  • logback下日志输出前处理操作——以日志脱敏为例
    使用lockback目前JavaSpring服务在打印日志时一般使用slf4j和logback这种组合,其基本原理图如下具体的:大多数会先定义一个loackback-dev.xml文件,而后使用<appender>标签定义输出格式<appendername="file"class="ch.qos.logback.core.rolling.RollingFileAppender">......
  • 如何处理“内部C++对象(某些对象)已删除”?
    当我关闭具有记录器的窗口然后重新打开该窗口时,我收到“RuntimeError:内部C++对象(PySide6.QtWidgets.QPlainTextEdit)已删除。”(我根据这篇文章制作了记录器:在pyqt中显示日志的最佳方式?)。当我从LoggerWindow的closeEvent中删除“self.deleteLater()”时,我没......
  • 数学建模-数据预处理(数据清洗、标准化)
    在数学建模的比赛中,数据分析类的题目中往往我们要面对大量的数据,在给出的数据中,如果数据缺失会影响到判断和后序的操作这里我们给出一个数据预处理的办法:数据清洗(DataClearning):涉及到检测和纠正数据中的错误、不完整、不准确或不适用的部分,以确保数据质量和可靠性。数据清洗......
  • 架构知识点(二)
    轮询调度(RoundRobinScheduling)是一种时间片轮转调度算法,主要用于多任务系统中。其基本思想是将所有任务排成一个队列,每次调度时,系统会从队列中取出下一个任务执行,直到任务完成或达到其时间片限制。当任务的时间片用完后,该任务会被放回队列的末尾,等待下一次调度。轮询调度的特点......
  • Java - 异常与File
    异常灵魂四问:如果try中没有遇到问题,怎么执行?try全部执行,catch不执行如果try中可能会遇到多个问题,怎么执行?写多个catch与之对应,父类异常需要写在下面如果try中遇到的问题没有被捕获,怎么执行?异常会默认交给虚拟机处理,try...catch白写如果try中遇到了问题,那......
  • Python 基础教学:中文编码处理
    《Python基础教学:中文编码处理》在编程中,处理中文字符时经常会遇到编码问题。Python3默认使用UTF-8编码,但在处理文件、网络数据或与旧系统交互时,可能需要处理GBK、GB2312等其他编码。1.字符串的编码和解码在Python中,字符串(str)默认是Unicode编码。当你需要将......
  • Angular项目如何使用拦截器 httpClient 请求响应处理
    在Angular中,拦截器(Interceptor)是一种用于拦截和处理HTTP请求或响应的机制。HttpClient模块提供了一种方便的方式来创建拦截器,以便在发送请求或接收响应之前或之后执行一些操作。以下是如何在Angular项目中使用HttpClient拦截器的基本步骤:创建拦截器类:首先,你需要创建一个继承自H......
  • Shell文本处理秘籍:掌握这11种工具,让数据处理如虎添翼!
    引言在Linux信息环境,文本数据处理是一项基础而重要的技能。对于广大Linux用户而言,掌握Shell环境下的文本处理工具不仅能提高工作效率,还能在面对复杂数据时游刃有余。本文将介绍,那些在文本处理中不可或缺的11种命令工具,让数据处理技能更上一层楼。目录find:find命令无......
  • Python函数的异常
    #异常:是一个事件,这个时间在程序执行过程中发生,影响了程序的正常执行#异常处理最终目的:让程序在有异常时,仍能够正常运行#语法格式一:try:  print(a)  #可能够引发异常的现象的代码except:  #基类异常  print('出现错误')b=10print(b)#法二try: ......