前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何学python 第九课-try&except-错误与异常

如何学python 第九课-try&except-错误与异常

作者头像
用户1631416
发布2018-04-12 10:09:22
6190
发布2018-04-12 10:09:22
举报
文章被收录于专栏:玄魂工作室
在调试程序的过程中,总会遇到这样或者那样的错误。今天我们就学习一下如何定位和解决这些问题。

人非圣贤,孰能无过?写程序的时候难免会遇到一些问题。本篇文章会介绍一些常见的错误,并解释一下其中的道理。

出错并不是坏事

错误的出现原因多种多样。用户的非法输入、进程创建失败等等都可以导致错误的出现。除了语法错误这种低级错误之外,有时候,发现逻辑/使用上的缺陷不仅可以防患于未然,甚至可以让我们把程序做得更好。

看懂错误信息

如果程序出了错,我们通常会得到一个非常醒目的提示。我相信各位应该都遇到不小心写错程序时候python给出的错误信息,比如下面这个:

遇到错误,首先要做的就是找到原因。Python会告诉我们错误出现的位置,行号,以及错误的类型。上图出现的错误类型是”Type Error”错误,这是因为我们尝试把一个字符类型和一个数据类型加在一起。错误的类型有很多,类型与类型之间存在着继承的关系,可以参见这篇文章:

https://docs.python.org/2/library/exceptions.html#exception-hierarchy

有些时候错误提示还会用一个小小的^符号帮我们指出错误的位置,像这样:

这种情况更多出现在我们把语句写错了的时候。

未雨绸缪

如果想要增加程序的稳定性(健壮性),我们应该尽可能的考虑可能发生错误的点以及用户的使用方式,以使得程序不会轻易的崩溃。不合理的输入是最常见的问题,比它还要常见的则是代码本身写错了。

这个小节的意义是提醒你在写完程序之后重新读读自己写的代码,而且要仔细要认真。一旦你学会了定位问题,你的编程功力便上升了一个等级。

现在,我们知道了定位问题的方法。下面,我们来看看具体要怎么写处理问题的代码。

处理错误

好了,道理讲得差不多了,现在开始写代码。为了处理错误,我们使用try关键字和except关键字。这跟(英文的)字面意思差不多,试(try)一下这个,如果遇到了问题就把它视为例外(exception)。使用try和except可以让我们的程序有更好的容错性。

下面我们来演示一下。我们的程序将会要求用户输入一个数字,然后把这个数字输出出来。但我们只接受数字类型的输入,如果输入的不是数字,就提示用户输入的值有问题。我们会用两种方式来实现这个功能,第一种不用try和except,另一种使用。

第一种:

在上面的代码中,我们让用户输入一个值,并尝试通过给这个值加一的方式看看它是不是一个数字。(好吧这其实挺可爱的 如果用户输入的根本不是一个数字又怎么加一呢?+1s)如果是一个数字,那么我们就输出用户输入的数字;如果不是数字,我们就输出提示。

输入了数字的时候运行结果如下:

输入字符的时候运行结果如下:

如果我们所见,我们在输入数字的时候得到了想要的结果,但是当我们输入字符串的时候,程序直接崩了。,

下面来使用try和except。

我们再来看看现在程序会怎么运行:

现在,我们的程序可以如我们期待的一样运行了。

总结

在这一篇中我们讲述了一些基本的概念,包括’错误不全都是坏的’、通过python给出的错误提示信息分析错误以及通过思考来找到代码里的潜在缺陷。我们还尝试了通过try和except来处理可能遇到的错误。

练习

尝试自己制造出各种各样的错误,然后看看它们的错误类型;捕捉并处理这些错误。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档