之前的文章我们简单介绍了一下 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 从入门到进阶之路(六)的更多相关文章

  1. Python 从入门到进阶之路(一)

    人生苦短,我用 Python. Python 无疑是目前最火的语言之一,在这里就不再夸他的 NB 之处了,本着对计算机编程的浓厚兴趣,便开始了对 Python 的自学之路,并记录下此学习记录的心酸历程 ...

  2. Python 从入门到进阶之路(七)

    之前的文章我们简单介绍了一下 Python 中异常处理,本篇文章我们来看一下 Python 中 is 和 == 的区别及深拷贝和浅拷贝. 我们先来看一下在 Python 中的双等号 == . == 是 ...

  3. Python 从入门到进阶之路(五)

    之前的文章我们简单介绍了一下 Python 的函数,本篇文章我们来看一下 Python 中的面向对象. Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是 ...

  4. Python 从入门到进阶之路(四)

    之前的文章我们简单介绍了一下 Python 的几种变量类型,本篇文章我们来看一下 Python 中的函数. 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性, ...

  5. Python 从入门到进阶之路(三)

    在之前的文章我们介绍了一下 Python 中 if while for 的使用,本章我们来看一下 Python 中的变量类型. 在 Python 定义变量时的规则是 变量名 = 变量 ,Python ...

  6. Python 从入门到进阶之路(二)

    之前的文章我们对 Python 语法有了一个简单的认识,接下来我们对 Python 中的 if while for 做一下介绍. 上图为 if 判断语句的流程,无论任何语言,都会涉及到判断问题,if ...

  7. python快速入门及进阶

    python快速入门及进阶 by 小强

  8. Python 爬虫从入门到进阶之路(六)

    在之前的文章中我们介绍了一下 opener 应用中的 ProxyHandler 处理器(代理设置),本篇文章我们再来看一下 opener 中的 Cookie 的使用. Cookie 是指某些网站服务器 ...

  9. Python 爬虫从入门到进阶之路(十六)

    之前的文章我们介绍了几种可以爬取网站信息的模块,并根据这些模块爬取了<糗事百科>的糗百内容,本章我们来看一下用于专门爬取网站信息的框架 Scrapy. Scrapy是用纯Python实现一 ...

随机推荐

  1. .net下DllImport的一个小问题

    最近搞几个PInvoke几个DLL, 在.net 2.0下木有问题, 跑的很好 如下: [DllImport( "tjo.dll" )] private static extern ...

  2. Unity5优秀插件分享

    转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6836001.html  天空盒:1.SkyboxesUnity4中自带的天空盒,经常用到.不知道为什么U ...

  3. Web基础了解版04-XML-Tomcat-Http

    XML 什么是XML - Tomcat - Http XML:eXtensible Markup Language (可扩展标记语言). XML 是一种标记语言,很类似 HTML. XML 的设计宗旨 ...

  4. Dynamics 365 Portal Onpremise缓存问题

    最近被Dynamics 365 Portal的缓存问题折腾得不轻,Portal的配置进行缓存也就算了,连CRM中的记录也进行了长达15分钟到2小时的缓存,这是完全无法接受的 试想,我们有一个Porta ...

  5. Git很麻烦?只要掌握这几个命令,轻松将代码提交远程仓库

    在上一章节,跟大家介绍了拉取代码的操作,简单暴力.这一章节要介绍的是如何将现有的项目,直接提交到仓库. 现在,如果大家有一个项目要提交到GitHub仓库,安装上一张的方法,需要先在GitHub上建一个 ...

  6. 2019年Java面试题基础系列228道(3)

    51.类 ExampleA 继承 Exception,类 ExampleB 继承ExampleA. 有如下代码片断: try { throw new ExampleB("b")}c ...

  7. requests第三方库

    requests第三方库 简介: requests是一个优雅而简单的Python 第三方HTTP请求库,专为人类而构建. requests的官方文档同样也非常的完善详尽,而且少见的有中文官方文档:ht ...

  8. IT兄弟连 HTML5教程 在移动设备上设置原始大小显示

    在iPhone系列和iPod Touch中使用的是Safari浏览器,它支持前面介绍的媒体查询表达式.例如,使用iPhone 320px×480px的分辨率去访问我们前面的布局示例,却无法得到我们想看 ...

  9. python网络爬虫之解析网页的BeautifulSoup(爬取电影图片)[三]

    目录 前言 一.BeautifulSoup的基本语法 二.爬取网页图片 扩展学习 后记 前言 本章同样是解析一个网页的结构信息 在上章内容中(python网络爬虫之解析网页的正则表达式(爬取4k动漫图 ...

  10. C# -- Quartz.Net入门案例

    1. 入门案例 using Quartz;using Quartz.Impl; public class PrintTime : IJob { public Task Execute(IJobExec ...