Python 从入门到进阶之路(六)
之前的文章我们简单介绍了一下 Python 的面向对象,本篇文章我们来看一下 Python 中异常处理。
我们在写程序时,有可能会出现程序报错,但是我们想绕过这个错误执行操作。即使我们的程序写的没问题,但是在运行时也可能会出错,这是我们就需要将异常抛出来解决,如下代码:
print(name)
print("1111")
在上面的代码中,我们想打印输出 name 值,但是我们并没有提前声明该变量,所以程序会抛出异常,但我们并不想让程序报错,可以如下解决:
try:
print(name)
except NameError:
print("发生了异常") # 发生了异常
print("") #
根据上面的代码不难发现,我们可以使用 try except 语法来跳过这个异常执行接下来的代码。
异常处理的详细写法如下:
try:
print("")
except (NameError,FileExistsError):
print(NameError,FileExistsError)
print("如果捕获到异常后做的处理")
except Exception as ret:
print("如果用了 Exception,那么意味着只要上面的 except 没有捕获到异常,这个 except 一定会捕获到")
print(ret)
else:
print("没有异常才会执行的功能")
finally:
print("无论有没有异常都执行") print("") '''
123
没有异常才会执行的功能
无论有没有异常都执行
1111
'''
从上面的输出结果我们可以看出,当程序没有错误正常执行时,程序执行了 else,finally 两个异常处理。
try:
print(name)
except (NameError,FileExistsError):
print(NameError,FileExistsError)
print("如果捕获到异常后做的处理")
except Exception as ret:
print("如果用了 Exception,那么意味着只要上面的 except 没有捕获到异常,这个 except 一定会捕获到")
print(ret)
else:
print("没有异常才会执行的功能")
finally:
print("无论有没有异常都执行") print("") '''
<class 'NameError'> <class 'FileExistsError'>
如果捕获到异常后做的处理
无论有没有异常都执行
1111
'''
从上面的输出结果我们可以看出,如果程序报错且第一个 except 捕获到异常,程序执行了第一个 except,finally 两个异常处理。
try:
1/0
except (NameError,FileExistsError):
print(NameError,FileExistsError)
print("如果捕获到异常后做的处理")
except Exception as ret:
print("如果用了 Exception,那么意味着只要上面的 except 没有捕获到异常,这个 except 一定会捕获到")
print(ret)
else:
print("没有异常才会执行的功能")
finally:
print("无论有没有异常都执行") print("") '''
如果用了 Exception,那么意味着只要上面的 except 没有捕获到异常,这个 except 一定会捕获到
division by zero
无论有没有异常都执行
1111
'''
从上面的输出结果我们可以看出,如果程序报错且第二个 except 捕获到异常,程序执行了第二个 except,finally 两个异常处理。
在编写程序中,我们不可避免地会使用抛出异常来处理我们的程序使其能正常运行,但是我们应尽量少的使用跑出异常。
Python 从入门到进阶之路(六)的更多相关文章
- Python 从入门到进阶之路(一)
人生苦短,我用 Python. Python 无疑是目前最火的语言之一,在这里就不再夸他的 NB 之处了,本着对计算机编程的浓厚兴趣,便开始了对 Python 的自学之路,并记录下此学习记录的心酸历程 ...
- Python 从入门到进阶之路(七)
之前的文章我们简单介绍了一下 Python 中异常处理,本篇文章我们来看一下 Python 中 is 和 == 的区别及深拷贝和浅拷贝. 我们先来看一下在 Python 中的双等号 == . == 是 ...
- Python 从入门到进阶之路(五)
之前的文章我们简单介绍了一下 Python 的函数,本篇文章我们来看一下 Python 中的面向对象. Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是 ...
- Python 从入门到进阶之路(四)
之前的文章我们简单介绍了一下 Python 的几种变量类型,本篇文章我们来看一下 Python 中的函数. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性, ...
- Python 从入门到进阶之路(三)
在之前的文章我们介绍了一下 Python 中 if while for 的使用,本章我们来看一下 Python 中的变量类型. 在 Python 定义变量时的规则是 变量名 = 变量 ,Python ...
- Python 从入门到进阶之路(二)
之前的文章我们对 Python 语法有了一个简单的认识,接下来我们对 Python 中的 if while for 做一下介绍. 上图为 if 判断语句的流程,无论任何语言,都会涉及到判断问题,if ...
- python快速入门及进阶
python快速入门及进阶 by 小强
- Python 爬虫从入门到进阶之路(六)
在之前的文章中我们介绍了一下 opener 应用中的 ProxyHandler 处理器(代理设置),本篇文章我们再来看一下 opener 中的 Cookie 的使用. Cookie 是指某些网站服务器 ...
- Python 爬虫从入门到进阶之路(十六)
之前的文章我们介绍了几种可以爬取网站信息的模块,并根据这些模块爬取了<糗事百科>的糗百内容,本章我们来看一下用于专门爬取网站信息的框架 Scrapy. Scrapy是用纯Python实现一 ...
随机推荐
- oracle管理角色和权限
介绍 这一部分主要看看oracle中如何管理权限和角色,权限和角色的区别在哪里. 当刚刚建立用户时,用户没有任何权限,也不能执行任何操作.如果要执行某种特定的数据库操作,则必需为其授予系统的权限:如果 ...
- Ubuntu 18.04系统中不能ssh外网远程
前言 今天我不小心动了电插板,导致服务器断电,用远程命令开机,居然很长时间没反应,索性就亲自按电源键重启.服务器正常开机启动,ssh可以内网访问,远程命令内网有效果,就是外网不行.经过分析排查,是不是 ...
- EFCore连接池的坑 差点晚年不保
长话短说 上个月公司上线了一个物联网数据科学项目,我主要负责前端接受物联网事件,并提供 参数下载. webapp 部署在Azure云上,参数使用Azure SQL Server存储. 最近从灰度测试转 ...
- django 用户与权限管理
django中使用content_type表进行存储app与model的关系.在permission表中设立了name(权限的名字,中英文均可)content_type_id(与content_typ ...
- JS Math对象、日期对象、函数、定时器
Math对象 开平方:sqrt 绝对值:abs π:PI x的y次方:pow 四舍五入取整:round 向下取整:floor 向上取整:ceil 最大值:max 最小值: min 随机数:random ...
- iOS底层实现原理【高级进阶】
想要进阶,想要提升自己一个更高档次,想要拥有更高比格的iOS开发攻城狮们,请关注 ↓↓↓ 我的简书:https://www.jianshu.com/u/3adf2f8593b8 我的掘金:https: ...
- Java 密码加盐
只对密码进行md5加密很容易反推出来,另外两个用户的密码相同时,数据库保存相同的密码,知道一个用户的密码就知道另一个.解决方法是在用户的短密码后面加上一段长字符,再计算 md5,这样反推出原始密码就变 ...
- inux 磁盘监控分析
一.查看磁盘空间 1. df -h Size 分割区总容量 Used 已使用的大小 Avail 剩下的大小 Use% 使用的百分比 Mounted on 路径地址 2.查看目录的空间 du -sh ...
- jimdb压测踩坑记
本文记录在jimdb压测过程中遇到的各种小坑,望能够抛砖引玉. 1.压测流量起来后,过了5分钟左右,发现ops突降,大概降了三分之一,然后稳定了下来 大概原因:此种情况,jimdb极有可能某个分片的连 ...
- asp.net core web应用以服务的方式安装运行
目录 一.方案:使用Microsoft.Extensions.Hosting.WindowsServices实现: 一.方案:使用Microsoft.Extensions.Hosting.Window ...