Python中的错误和异常
前言
错误是程序中的问题,由于这些问题而导致程序停止执行。另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程。
python中会发生两种类型的错误。
- 语法错误
- 逻辑错误(异常)
语法错误
如果未遵循正确的语言语法,则会引发语法错误。
例
# 初始化amount变量
amount = 10000 # 检查你是否有资格
# 是否购买某某自学课程
if(amount>2999)
print("您有资格购买某课程")
输出:
PS C:\Users\Administrator\Desktop> & D:/Python37-32/python.exe "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py"
File "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py", line 6
if(amount>2999)
^
SyntaxError: invalid syntax
它返回语法错误消息,因为在if语句后:缺少冒号。我们可以通过编写正确的语法来解决此问题。
逻辑错误(异常)
在运行时中,通过语法测试后发生错误的情况称为异常或逻辑类型。例如,当我们将任何数字除以零时,ZeroDivisionError就会引发异常,或者当我们导入一个不存在的模块时,就会引发异常ImportError。
范例1:
# 初始化amount变量
marks = 10000 # 用0除
a = marks / 0
print(a)
输出:
PS C:\Users\Administrator\Desktop> & D:/Python37-32/python.exe "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py"
Traceback (most recent call last):
File "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py", line 5, in <module>
a = marks / 0
ZeroDivisionError: division by zero
在上面的示例中,我们尝试将数字除以0时出现ZeroDivisionError。
示例2:缩进不正确时。
if(a<3):
print("gfg")
输出:
PS C:\Users\Administrator\Desktop> & D:/Python37-32/python.exe "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py"
File "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py", line 1
if(a<3):
^
SyntaxError: invalid character in identifier
除上述异常外,一些常见的内置异常是:
错误处理
当出现错误和异常时,我们将借助Handling方法进行处理。
- 用Try / Except / Finally处理异常我们可以通过Try / Except / Finally方法处理错误。我们在try中编写不安全的代码,在except中回退代码,在finally块中返回最终代码。例
# 将不安全操作置于试验区
try:
print("代码开始") # 不安全操作执行
print(1 / 0)
except :
print("发生错误")
finally:
print("软件测试test")
输出:
PS C:\Users\Administrator\Desktop> & D:/Python37-32/python.exe "g:/黑苹果备份请勿删除/代码/exercise24 (1)/python加密.py"
代码开始
发生错误
软件测试test
- 为预定义条件引发异常当我们要为某些条件的限制进行编码时,我们可以引发异常。例
请在你的帐户中加钱
输出:
请在你的帐户中加钱
Python中的错误和异常的更多相关文章
- 关于Python中的错误与异常,你是否了解的够仔细?
每次版本结束都描述这着同样的错误,相似的问题,但始终没见解决.所以今天,我就来总结下Python的错误与异常! 异常与错误 错误 语法错误 可以通过IDE或者解释器给出提示的错误 opentxt('a ...
- Python学习-16.Python中的错误处理
虽然叫错误,但跟 C# 中的异常是一回事.只不过 Python 中叫错误(Error)而 C# 中叫异常(Exception). 先手工产生一个异常: file = open('','r') 上面一句 ...
- python中的捕获异常、异常跟踪
# 捕获异常,打印异常信息 try: 1/0 except Exception as e: print(e) 输出结果是integer division or modulo by zero,只知道是报 ...
- python中try except处理程序异常的三种常用方法
如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序: try: 语句1 语句2 . . 语句N except .........: do somet ...
- Python学习_07_错误、异常
地毯式地过语法终于快要结束了... Python中的常见异常 1.NameError:尝试访问一个未初始化的变量 2. ZeroDivisionError:除数为0 3. SyntaxError:Py ...
- Python学习-18.Python中的错误处理(三)
在某些情况下,我们需要定义自己的异常并且抛出 先定义一个错误: class MyError(BaseException): def __init__(self): pass 上面定义了一个叫MyErr ...
- python中若干错误
今天在运行的django的时候一直提示”系统错误“,如下 except Exception, ex: logger.error(printException()) return render_stri ...
- Python 中常见错误总结
IndentationError: unexpected indent Python 中强制缩进,, IndentationError: unexpected indent 缩进错误 这类错误非常常见 ...
- php中的错误和异常
总结: php错误不会抛出异常,因此不能被catch,但会根据配置写入日志文件或者输出到浏览器,所以可以通过日志文件查看错误 php异常都必须自己抛出,并通过catch捕捉.SQL语句执行的错误好像可 ...
随机推荐
- Java实现 蓝桥杯VIP 算法提高 现代诗如蚯蚓
算法提高 现代诗如蚯蚓 时间限制:1.0s 内存限制:256.0MB 问题描述 现代诗如蚯蚓 断成好几截都不会死 字符串断成好几截 有可能完全一样 请编写程序 输入字符串 输出该字符串最多能断成多少截 ...
- Java实现LeetCode 110. Balanced Binary Tree
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ...
- Java实现 洛谷 P2024 [NOI2001]食物链
输入输出样例 输入 #1 100 7 1 101 1 2 1 2 2 2 3 2 3 3 1 1 3 2 3 1 1 5 5 输出 #1 3 import java.util.Scanner; pub ...
- Java实现 蓝桥杯 历届试题 危险系数
问题描述 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个危险系数DF( ...
- Java实现第八届蓝桥杯日期问题
日期问题 题目描述 小明正在整理一批历史文献.这些历史文献中出现了很多日期.小明知道这些日期都在1960年1月1日至2059年12月31日.令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/ ...
- cocos2dx获得字体的宽高
Android: 1.在CCImage中添加下面的方法: //头文件声明略. cocos2d::CCSize CCImage::getStringSize(const char *text, cons ...
- C# 反射详解一
首先反射是基于System.Reflection命名空间下,.Net框架提供的帮助类库,可以读取并使用metadata(元数据:描述对象信息的数据). 我们再来看下代码生成编译的总过程. 编译器编译( ...
- MySQL 8.0权限认证(上)
MySQL 8.0授权认证 一.系统权限表 user 存放用户账户信息以及全局级别(所有数据库)权限,决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权 ...
- 第12章 Java内存模型与线程
参考<深入理解Java虚拟机> 一.Java内存模型 1.Java内存模型 2.内存间交互操作 流程图: 3.volatile关键字 两个特性: 3.1.保证变脸对所有线程的可见性: 由 ...
- Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
距离上次提出 [Asp.Net Core] Blazor Server Side 扩展用途 - 配合CEF来制作带浏览器核心的客户端软件 的想法后, 差不多2个星期了. 这个玩意也做了一半, 自用是没 ...