查询网站收录命令,门户网站建设汇报材料,wordpress评论美化,wordpress插件安装教程文章目录 前言一、异常是什么#xff1f;二、异常处理1. 根据提示2. 捕获异常3.抛出异常——raise4.应用场景 总结 前言
我们在日常编写代码的时候#xff0c;难免会遇到一些不可控的错误#xff0c;这无疑会导致程序的终止#xff0c;大大降低了程序的实用性#xff0c;… 文章目录 前言一、异常是什么二、异常处理1. 根据提示2. 捕获异常3.抛出异常——raise4.应用场景 总结 前言
我们在日常编写代码的时候难免会遇到一些不可控的错误这无疑会导致程序的终止大大降低了程序的实用性那么我们如何能优化这种情况呢接下俩就让我们来详细了解一下吧 一、异常是什么
在Python中异常是指在程序执行过程中出现的错误或意外情况。当Python解释器遇到异常时会中断当前的执行流程并尝试寻找异常处理程序来处理异常。如果找不到合适的异常处理程序程序将终止并打印出错误信息。
分类 语法错误 syntaxerror代码不符合Python语法规定 ZeroDivisionError除数为0 KeyError字典中不存在这个键 AttributeError对象没有这个属性 TypeError类型错误传入的类型不匹配 ImportError无法引入模块或包基本上是路径问题或名称错误 逻辑错误 nameerror:使用一个还没有被定义的变量 indexerror下标/索引超出范围 IOError输入/输出操作错误基本上是无法打开文件比如你要读的文件不存在 ValueError传入的值有误
二、异常处理
1. 根据提示
traceback找出错误点并改正 xxxError会显示异常的类型以及具体的提示
2. 捕获异常
要保证程序的容错性和可靠性遇到错误不直接崩溃而是有对应的异常机制处理
捕获异常一 语法 try: 被检测的代码块 except 异常类型 as e 检测到异常要执行的代码块
代码如下
a int(input(请输入第一个数字))
b int(input(请输入第二个数字))
try:print(a/b)
except ZeroDivisionError as error:print(error)print(您输入的数据有误)
# 执行的原理执行try里的子代码块如果字代码块没有触发异常直接跳过except语句try语句执行完毕
# 如果执行try发生异常则跳过异常语句执行except语句except和指定的异常类型进行匹配匹配成功就执行except代码如果匹配不成功异常没有捕获到输出错误。捕获异常二 try检测的代码块出现了两个或多个异常可以用多个except进行匹配或者把多个异常类型放在一个元组内用一个except匹配
代码如下
try:a int(input(请输入第一个数字))b int(input(请输入第二个数字))print(a / b)
except (ZeroDivisionError, ValueError) as error:print(error)print(您输入的数据有误)
except ValueError as e:print(e) # invalid literal for int() with base 10: 10.0捕获异常三 程序在执行出现错误的时候出现逻辑错误不能确定具体是什么逻辑错误万能异常 Exception 代表所有异常类型 作用能捕获到大多数的异常但是不能捕获语法错误
代码如下
try:li [1, 2, 3]print(li[0])a int(input(请输入第一个数字))b int(input(请输入第二个数字))print(a / b)
except Exception as e:print(e)注意Exception的首字母必须要大写不能捕获语法异常
捕获异常四 当检测的代码块没有出现任何异常的时候执行else代码
代码如下
try:name aprint(name)print(int(10))print(float(10.14))
except Exception as e:print(e)
else:print(程序没有出现错误)捕获异常五 不管有没有检测到异常都会执行 finally
代码如下
语法try:被检测的代码块except 异常类型 as e检测到异常要执行的代码块else没有捕获到异常执行的代码finally:无论是否有异常都会执行注意finally和try可以单独连用作用回收资源的操作关闭已经打开的文件关闭打开的数据库
try:name aprint(name)print(int(10))print(float(10.14))
except Exception as e:print(e)
else:print(程序没有出现错误)
finally:print(不管是否异常都会执行) # 一般做一些文件的关闭3.抛出异常——raise
前面都是不符合Python解释器的语法由解释器抛出异常。我们也可以自己定义异常在满足什么条件下主动抛出。
语法 1.创建Exception‘错误的信息’ 2.raise抛出即可 e Exception(‘错误’) raise e
代码如下
def login():count 0while True:username input(请输入账号)code input(请输入验证码)if code 123456:count 1if count 5:e Exception(验证码输入错误超过五次请一分钟后重试)raise e
try:login()
except Exception as e:print(e)4.应用场景
写程序打开了一个文件对文件执行读写操作过程中遇到一些逻辑错误引发了异常通过try except进行捕获注意写程序打开了一个文件对文件执行读写操作过程中遇到一些逻辑错误引发了异常通过try except进行捕获。
代码如下
def func():li []return li[0]
func()
try:func()
except Exception as e:print(e)# 函数处理某一个功能的代码异常捕获是给该函数唯一增加的功能利用异常捕获来检查和简写代码
代码如下
def func():while True:name input(请输入账号名)if len(name) 10: # 正确逻辑if name Abner:print(账号名输入正确)breakelse:print(请重新输入)else:print(请重新输入)def func():while True:name input(请输入账号名)if len(name) 10:print(请重新输入)continueif name Abner:print(账号名输入正确)break总结
本节主要讲述了写代码过程中出现的错误以及解决方法这就为我们之后的代码编写中提供了一个新的思路。
美好的一天上帝不会就这样给你需要自己去创造。