动漫网站开发 sh框架,公司网站制作范文,WordPress两种列表页,网站建设框架怎么做1 python异常之try/else分句
如果try语句代码块未发生异常#xff0c;则执行else语句代码块#xff0c;else需要放在except分句后面。
1.1 基本用法
用法
try:# try语句代码块# 执行时可能发生异常的代码块
except ExceptionType:# except语句代码块# 当发生指定类型的异…1 python异常之try/else分句
如果try语句代码块未发生异常则执行else语句代码块else需要放在except分句后面。
1.1 基本用法
用法
try:# try语句代码块# 执行时可能发生异常的代码块
except ExceptionType:# except语句代码块# 当发生指定类型的异常时执行的代码块
else:# else语句代码块
# 如果没有发生异常则执行此代码块
finally:# finally语句代码块
# 不管是否发生异常都会执行此代码块
描述
1 else分句必须出现在except后面finally的前面
2 ExceptionType为可选项若有则捕获指定异常若无则捕获全部异常
3 将可能发生异常的语句放在try代码块并且分别用except指定各自可能发生的异常
4 将“不会发生异常”的语句放在else代码块避免意外发生异常被except捕获这的“不会发生异常”是一种预期结果是一种理想假设
5 else分句提高代码的健壮性和可读性
示例 while True:try:xinput(请输入一个整数)print(您输入的是,x)num int(x)except ValueError:print(输入错误请输入一个整数)print(-*20)else:print(输入正确)break请输入一个整数梯阅线条
您输入的是 梯阅线条
输入错误请输入一个整数
--------------------
请输入一个整数9555
您输入的是 9555
输入正确1.2 else使用举例
如果希望在没有发生异常情况下执行一些代码则可以使用else语句实现。
1.2.1 处理除数非0
描述
除法运算可能出现除以零的情况在else分句编写非0代码。
示例 def testesle():try:xint(input(输入被除数:))yint(input(输入除数:))resx/yexcept ZeroDivisionError as zde:print(除数不能为0,zde)else:print(商等于:,res) testesle()
输入被除数:10
输入除数:2
商等于: 5.0testesle()
输入被除数:10
输入除数:0
除数不能为0 division by zero1.2.2 处理文件内容
描述
处理文件时可能发生文件不存在打开失败的情况在else语句编写打开成功的代码。
示例 def testelse(filepath):try:with open(filepath, r) as f:content f.read()except FileNotFoundError as fnfe:print(打开文件失败:,fnfe)else:print(content)testelse(rE:\documents\F盘\hello.txt)
hello!python!testelse(rE:\documents\F盘\hella.txt)
打开文件失败: [Errno 2] No such file or directory: E:\\documents\\F盘\\hella.txt1.2.3 处理网络请求
描述
处理网络请求时可能出现连接超时或服务器错误的异常在else语句编写请求成功的代码。
示例 def testelse(url):import requeststry:resrequests.get(url)res.raise_for_status()except requests.exceptions.RequestException as e:print(打开url失败:,e)else:print(res.status_code) testelse(rhttps://www.baidu.com/)
200testelse(rhttps://www.9555.com/)
打开url失败: HTTPSConnectionPool(hostwww.9555.com, port443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1122))))