GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing mofanpy.com — 如何控制异常 try-except | 莫烦Python 如何控制异常 try-except 作者: 莫烦 编辑: 莫烦 发布于: 2021-05-12 出错我们无可避免,代码写错程序当然运行不了。但是即使你代码写对了,你就一定能保证运行成功吗? 当然不是,大千世界,这世界复杂到你处理不过来。如果这个代码完全是你自己写的, 而且确保每个环节都检测到了。那有可能你不会运行出任何错误。 但是这代码你有可能是基于他人的代码,别人没有你这样敬业,他的代码可能会出错呀。 即使别人的代码不出错,但是也有可能物理环境会出错呀,比如 CPU 超了,某人的服务运行失败,你恰好又是基于他提供的服务, 你也跟着超时了。这些都会让你的程序报错。 还好,在 Python 中,或者任何语言中,都有一些处理错误的方式,handle 这些错误,保证你的程序可以顺利执行下去。 我知道你可能报错¶为了让你的程序兼容性更好,你往往就得考虑对潜在的错误进行捕捉。而在我们假设的文件管理系统里, 文件的处理也会经常有无可避免的错误。比如我读了一个不存在的文件。 这时我们来观察一下,在它的报错中有这样一个关键词 你运行一下,发现现在已经没有报错了吧,因为潜在的 处理多个异常¶如果我的程序在执行某个功能的时候可能会报多种不同的异常,我应该怎么办呢?上面我们处理的都是一种异常,下面我们就用另一种方法来处理多种异常。 首先如果你的多种异常的处理方案是一样的话,我们就能在 上面这个案例,如果你在原本的 如果我想让两种 error 分开来处理,比如没有 key 的时候,加一个 key,没有 index 的时候加一个 index。能行吗?那就写两个 但是你有没有发现一个小事情,它不会同时处理字典的 try-except-else¶还有一个 try-except-else 的模式,在 下面的代码,我们把 try-except-finally¶你已经见识了大部分的异常处理方法了。如果 上面这两种模式主要用在什么 case 当中呢?你想一下,是不是有些时候,不管你有没有报错,你都想让程序去执行什么。我们甚至都不需要为任何异常做任何处理。 这种时候,也就是说,你有异常吧,我不让你终止主程序,你没有异常吧,万事大吉。 raise手动触发异常¶有天我被调去了做开源库的工作,为了别人使用到我的代码时不至于骂街,或者异常后报出一大堆很难 debug 的信息。 这个时候我就该考虑考虑 raise 的用法了。 为什么这么说?因为 raise 是你为别人犯错留下的证据,或者是告诉别人你怎么犯错的。这个信息对于别人 dubug 你的代码十分有好处。 另一种情况是,你写了成百上千行代码,你也不能全记住代码的每一个细节。所以一旦报错,你也需要一个友善的错误信息提示,这时用 raise 准没错。 在现在的 IT 互联网时代,我们的程序服务很多都发生在网上,通过网络传输后计算数据。在这种情况下,raise 一个可能发生的错误十分有用。 另外,如果你已经是 Python 玩家了,你在使用其他库的时候肯定遇到过很多报错的情况,这就是别人用上面那种用法告诉你出什么错了。 所以当你为别人提供功能时,你就要学会用 raise。 Python异常错误名称表¶有哪些能被 raise 的 error 呢?下面我们就列一个表告诉你~
异常千变万化,告知他人犯了什么错,为别人留下充足的信息,帮助别人找到正确的使用方法吧~ 交互式学Python
介绍
基础功能
循环、数据、判断
函数、类、模块
文件管理
异常检查和处理 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |