Python中错误和异常的区别是什么?

news/2024/9/21 13:29:17

  在任何编程语言中,编写程序时出现异常或错误情况是常有的事情,也经常有人将错误和异常混为一谈,认为错误就是异常,异常就是错误。那么Python中什么是异常?错误和异常的区别是什么?本篇文章为大家介绍一下。

  什么是异常?

  异常即与正常情况不同,何为正常?正常便是解释器在解释代码时,我们所编写的代码符合解释器定义的规则,即为正常,当解释器发现某段代码符合语法但有可能出现不正常的情况时,解释器便会发出一个事件,中断程序的正常执行。这个中断的信号便是一个异常信号。所以,总体解释就是,在解释器发现到程序出现错误的时候,则会产生一个异常,若程序没有处理,则会将该异常抛出,程序的运行也随之终止。

  错误和异常的区别是什么?

  对于Python错误的概述:它指的是代码运行前的语法或逻辑错误。拿常规语法错误来说,当我们编写的代码过不了语法检测时,则会直接出现语法错误,必须在程序执行前改正,不然写的代码将毫无意义,代码是不运行的,也无法捕获得到。举个例子,在.py文件输入if a=1 print("hello"),输出结果如下:

  Traceback (most recent call last):

  file "E:/Test_code/test.py",line 1

  if a = 1 print("hello")

  ^SyntaxError:invalid syntax

  函数print()被检查到有错误,是它前面缺少了一个冒号:,所以解析器会复现句法错误的那行代码,并用一个小箭头指向行里检测到的第一个错误,所以我们可以直接找到对应的位置修改其语法。当然除了语法错误,还有很多程序奔溃的错误,如内存溢出等,这类错误往往比较隐蔽。

  相比于错误,Python异常主要在程序执行过程中,程序遇见逻辑或算法问题,这时解释器如果可以处理,则没问题,如果处理不了,便直接终止程序,便将异常抛出。这种因为逻辑产生的异常五花八门,还好我们的解释器都内置好了各种异常的种类,让我们知道是什么样的异常出现,从而对症下药。

  这里注意一点,上述语法错误是可识别的错误,所以解释器也会默认抛出一个SyntaxError异常信息反馈给程序员。所以本质上大部分错误都是可被输出打印的,只是因为错误代码不运行,也就没法处理,所以捕获错误的异常信息就变得没意义。


http://lihuaxi.xjx100.cn/news/407303.html

相关文章

应用性能监控管理工具

应用程序性能监控 Application Manager 的应用程序性能监控(APM Insight) 使应用程序开发人员和 DevOps 工程师能够了解应用程序性能,并帮助他们在问题影响最终用户之前对其进行故障排除。在应用程序性能问题影响收入之前监控、查明并解决它…

记录windows上的VSCODE 远程到linux编译代码机器上的一些问题

设置windows SSH 到linux时免密码登录的方法: 将C:\Users\Administrator.ssh\id_rsa.pub中的公钥字符串复制,追加到linux ~/.ssh/authorized_keys文件中。 问题: rootlocalhost:~/.vscode-server/bin/6261075646f055b99068d3688932416f2346d…

股票购买接口委托下单c++代码

炒股并非是运气可以驱使的,买股票不是赌博,是一种有风险的经济投资。在股市投资生涯中,掌握一门实战买卖技巧是我们必备的武器,这也是我们能长久在股市投资中得以生存的技法。 其实做股票投资是非常讲究买入和卖出的时机的。一只…

前端——给图形绘制阴影

给图形绘制阴影 在HTML5中,使用canvas元素可以给图形添加阴影效果。添加阴影效果时,只需利用图形上下文对象的几个关于阴影绘制的属性就可以了,这几个属性如下。 shadowOffsetX——阴影的横向位移量。 shadowOffsetY——阴影的纵向位移量。…

Linux几个常用安装命令(CentOS篇)

vue打包 curl --silent --location https://rpm.nodesource.com/setup_8.x | bash - yum install -y nodejs node -v npm -v npm install npm run build jdk安装 yum -y install java-1.8.0-openjdk java -version 然后安装elasticsearch: rpm --import h…

C/C++ const

文章目录const怎么理解?C和C中const的区别是什么?C语言中的 constC中的const定义时使用确定的值进行初始化,是常量定义时使用变量进行初始化,是常变量const怎么理解? const修饰的变量不能够作为左值!初始化…

u盘出现fat32如何恢复文件?告诉你两种好方法

u盘由于体积小、内存大等优势,在日常生活领域应用的很多,但是使用过程中,总会遇到这样或那样的问题,比如u盘显示fat32打开啥都没有了?或者u盘出现fat32而无法访问的情况,这时如果里面有重要的数据怎么办呢&…

基于Java毕业设计影视论坛源码+系统+mysql+lw文档+部署软件

基于Java毕业设计影视论坛源码系统mysqllw文档部署软件 基于Java毕业设计影视论坛源码系统mysqllw文档部署软件本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软件:idea eclipse 前端技术:Layui、HTML、C…