python中异常有哪些?python中异常的详细介绍


本文摘自php中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于python中异常有哪些?python中异常的详细介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

python的异常分为两种,1)、语法错误,在python解释器的语法检测中不通过不能运行代码 2)、异常,python程序运行期检测到的错误被称为异常。在没有做异常处理时,将终止程序并提示异常信息,如:①字符串转换为数字时的类型转换异常,②文件读取时的文件不存在异常,③网络链接时主机不可达异常···等。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。毕竟谁也不希望用着的程序突然的就崩了

1、语法错误

python的语法错误是很多初学者经常遇到的一个问题,这类错误比较低级,只要多敲几遍代码就可以减少这样的错误

1

2

3

4

5

6

7

8

9

10

>>> if Trur

  File "<stdin>", line 1

    if Trur

          ^

SyntaxError: invalid syntax

>>> print("as"))

  File "<stdin>", line 1

    print("as"))

               ^

SyntaxError: invalid syntax

如:出现这样的错误就是语法错误,第1行结尾if语句缺少 ":",第6行结尾多了 ")"

2、异常

1)运行期检测到的错误被称为异常,python的语法检测无法检查这样的错误。

1

2

3

4

5

6

7

8

>>> int("aa")

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

ValueError: invalid literal for int() with base 10: 'aa'

>>> f = open("aaa.txt","r")

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

FileNotFoundError: [Errno 2] No such file or directory: 'aaa.txt'

其中第1行,第5行都是出现异常的地方,看一下异常的输出信息,如下图

2)python的标准异常类

BaseException 为所有异常的基类,Exception 为常规错误的基类

其它python的异常类,就不再一一的述说,可以百度查看

3、异常处理

为了提高程序的健壮性,不让程序出现异常时出现崩溃的情况,在必要时需要进行异常处理

1)try-except:语句

①、最简单的异常处理语句如下,当try的语句块中有异常出现时,下边的的语句将不再执行(第3行),异常被except捕获,执行except中的语句块后继续向下执行程序(如第6行)。注:except后边不跟异常的类型,默认捕捉所有的异常

1

2

3

4

5

6

7

8

9

try:

    int("aaa")

    print("---aaa---")

except:

    print("出现异常-->英文字母不能转换为数字")

print("----------")

# 输出结果

出现异常-->英文字母不能转换为数字

----------

②、多分支异常,当我们需要捕获不同的异常时可以用多个except来实现,需要获取异常的信息可通过as 变量名得到异常的对象,如第7行

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

try:

    nu = int("100")

    print("转换后的值nu:", nu)

    i = 1 / 0

except ValueError:

    print("出现异常-->英文字母不能转换为数字")

except ZeroDivisionError as e:  # 通过 as 变量名 获取异常的对象

    print("出现异常-->除数不能为零")

    print("异常的提示信息-->", e)

except:

    pass

print("----------")

 

 

# 输出结果

转换后的值nu: 100

出现异常-->除数不能为零

异常的提示信息--> division by zero

----------

③、当我们需要将多个异常按相同的处理方式可以使用 except (ValueError, [ZeropisionError [, NameError]]):

1

2

3

4

5

6

7

8

9

10

11

12

13

try:

    i = 1 / 0

    nu = int("aa")

except (ValueError, ZeroDivisionError) as e:

    print(e)

except:

    pass

print("----------")

 

 

# 输出结果

division by zero

----------

2)try-except-else-finally 语句

①、当try-except-else-finally中出现了finally语句,不管是否出现异常finally语句块中的语句一定会执行,而else中的语句只有不出现异常是才会执行

阅读剩余部分

相关阅读 >>

Python合法标识符的命名规范是什么

Python如何读写json数据(代码)

pandas+dataframe实现行列选择与切片操作

讲解Python 基于文件操作实现购物车

Python中的排序操作和heapq模块的介绍(代码示例)

Python怎么安装pygame

Python如何处理表格?

Python color怎么设置

Python字典能用来干什么

Python中函数的全面总结(附实例)

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...