Python学习笔记(十)——异常及异常的处理
程序员文章站
2022-04-07 16:55:03
...
本节包括异常的定义,异常的捕获,异常的传递及抛出异常。
1. 异常
异常:程序在运行时,如果Python解释器遇到一个错误,会停止程序的执行,并且会提示一些错误的信息。
程序停止执行并且提示错误信息这个动作就是抛出异常
所以:
通过异常捕获可以针对突发事件做集中的处理,从而保证程序的稳定性和健壮性。
2. 捕获异常
如果对某些代码的执行不能确定是否正确,可以使用**try:**来捕获异常
语法:
try:
尝试执行的代码
except:
出现错误的处理
描述:当try中的代码出现错误,则执行except中的代码
代码演示:
try:
num = int(input("请输入一个整数"))
except:
# 错误的处理代码
print("请输入正确的整数")
结果:
请输入一个整数a
请输入正确的整数
2.1 针对错误类型来捕获异常
异常有很多类型,需要对不同类型的异常,做出不同的响应。
语法:
try:
#尝试执行的代码
pass
except 错误类型1:
#对应的代码处理
except 错误类型2:
#对应的代码处理
except Exception as result:
print("未知错误%s"% result)
捕获未知错误:
语法
except Exception as result:
print("未知错误%s"% result)
当出现异常时,最后一行错误信息的第一个单词,就是错误类型。
示例:
try:
num = int(input("请输入一个整数"))
result = 8/num
print(result)
except ZeroDivisionError:
print("分母不能为0")
except ValueError:
print("请输入正确的整数")
try:
num = int(input("请输入一个整数"))
result = 8/num
print(result)
# except ZeroDivisionError:
# print("分母不能为0")
except ValueError:
print("请输入正确的整数")
except Exception as res:
print("未知错误%s"%res)
请输入一个整数0
未知错误division by zero
2.2 异常捕获的完整语法:
try:
#尝试执行的代码
pass
except 错误类型1:
#对应的代码处理
except 错误类型2:
#对应的代码处理
except Exception as result:
print("未知错误%s"% result)
else:
#没有异常才会执行的代码
finally:
#无论是否有异常,都会执行的代码
代码演示:
try:
num = int(input("请输入一个整数"))
result = 8/num
print(result)
# except ZeroDivisionError:
# print("分母不能为0")
except ValueError:
print("请输入正确的整数")
except Exception as res:
print("未知错误%s"%res)
else:
print("程序正常执行")
finally:
print("无论是否异常,都会执行")
3. 异常的传递
当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方
如果传递到主函数,仍然没有异常处理,程序才会被终止。
因此:
可以在主函数中,增加异常捕获
def demo1():
return int(input("请输入一个整数"))
def demo2():
return demo1()
try:
print(demo2())
except Exception as result:
print("未知错误%s" %result)
请输入一个整数d
未知错误invalid literal for int() with base 10: 'd'
4. 抛出raise异常
1.创建Exception异常对象
2.使用raise抛出异常
def input_password():
pw = input("请输入密码")
if len(pw) >= 8:
return pw
print("主动抛出异常")
# 1.创建异常对象-可以使用错误信息字符串作为参数
ex = Exception("密码长度不够")
#2.主动抛出异常
raise ex
#3.捕获异常
try:
print(input_password())
except Exception as result:
print(result)
上一篇: Java异常处理流程
下一篇: C++代码 常见错误码写法