目录
(3)异常处理之try…except… else… finally…结构
编写和运行程序时,不可避免地会产生错误和异常。调试程序,发现错误并解决错误是程序员的必备技能之一。
1、Python中的常见错误
错误通常是指代码运行前的语法或逻辑错误。语法错误是指源代码中的拼写不符合解释器和编译器所要求的语法规则,一般集成开发工具中都会直接提示语法错误,执行时提示SyntaxError。必须在程序执行前改正,否则程序无法运行。逻辑错误是程序代码可执行,但执行结果不符合要求。例如求两个数中最大数,返回的结果却是最小数。
初学者经常遇到的一些语法错误如下。
- 需要使用英文符号的地方用了中文符号,例如逗号、冒号、括号等;
- 变量、函数等命名不符合标识符规范;
- 条件语句、循环语句、函数定义后面忘了写冒号;
- 位于同一层级的语句缩进不一致;
- 判断两个对象相等时, 使用一个等号而不是两个等号;
- 语句较为复杂时, 括号的嵌套关系错误, 少了或多了左/右括号;
- 函数定义时, 不同类型参数之间的顺序不符合要求;
2、Python中的常见异常
异常是指程序语法正确,但执行中因一些意外而导致的错误,异常并不是一定会发生,例如两个数相除时,大部分情况下都能正常执行,但除数为0时将会发生异常。默认情况下,程序运行中遇到异常时将会终止,并在控制台打印出异常出现的堆栈信息。通过异常处理可避免因异常导致的程序终止。
初学者经常遇到的一些异常及其含义。
3、Python中的异常处理
异常处理是指程序设计时,就考虑到了可能出现的意外情况,为了避免因异常而导致程序终止给用户带来不好的体验,而做的一些额外操作。例如,当执行两个数相除时,如果用户输入的除数为0,则提示用户除数不能为0,让他重新输入,而不是直接终止,给用户提示一大堆异常堆栈信息。异常处理使得异常出现后,程序仍然可以继续执行。
Python中通常将可能发生异常的代码放在try语句中,如果发生异常则通过except语句来捕获异常并对其做一些额外处理,如果没有发生异常则执行后面的else语句,最后执行finally语句做一些收尾操作。
(1)异常处理之try…except…结构
注意事项和一些技巧
- try子句后面可以有多个except子句,分别用来处理不同类型的异常,但最多只有一个except子句会执行;
- 一个except子句可以同时处理多个异常,多个异常名称放在一个元组中;
- 通常会在except子句的最后加上一个不带异常名称的except子句或异常名称为Exception的except子句,此时可捕获所有的异常,避免程序意外终止;
- 通常会将捕获到的异常赋值给某个变量,然后通过该变量获取异常的信息,例如except 异常名称 as 变量;
- except子句的顺序会影响到程序的执行结果,如果异常之间存在包含关系,通常会将范围大的异常放在后面,范围小的异常放在前面。
(2)异常处理之try…except…finally…结构
(3)异常处理之try…except… else… finally…结构
4、抛出异常
除了系统中提供的一些异常之外,我们也可以根据业务需要抛出自定义的异常,例如要求传递过来的字符串长度在6到10位之间,不满足要求时,抛出异常。有时候,我们捕获到了异常,但暂时不知道如何处理,此时也可以抛出异常,让其他调用者进行处理。
Python中提供了raise语句允许用户主动抛出异常,raise关键字后面需要提供一个异常实例或者异常类,如果传递的是异常类,则会调用无参数的构造方法来实例化对象。
如果捕获到了异常,但是暂时不处理,可以直接通过raise语句抛出异常,此时raise关键字后面什么都不用写。
今日练习题
更多关于手把手教你学Python的文章请关注微信公众号:手把手教你学编程。详细的视频讲解可查看 CSDN学院 里的手把手教你学Python系列视频:https://edu.csdn.net/lecturer/5686。