Open qingfengmingjian opened 5 years ago
大多数的异常都不会被程序处理,都以错误信息的形式展现
一个简单的异常
a=[bailian] Traceback (most recent call last): File "D:\Users\荆楚\Desktop\python\input\input.py", line 18, in <module> a=[bailian] NameError: name 'bailian' is not defined
异常处理: 基础语法:try-except
异常处理:
try语句按照如下方式工作; 首先,执行try子句(在关键字try和关键字except之间的语句) 如果没有异常发生,忽略except子句,try子句执行后结束。 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。 如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。 一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。 一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组 try: a=[bailian] except NameError: print('对象未声明类型') a=['bailian'] print(a[0]) 对象未声明类型 bailian
try-except-else
#######如果使用else,那么else必须放在所有的except子句之后 使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到的、而except又没有捕获的异常 代码存在异常,不执行else语句
#######如果使用else,那么else必须放在所有的except子句之后
try: a=[bailian] except NameError: print('except后面不能为空') print('对象未声明类型') a=['bailian'] print(a[0]) else: print['发生异常不打印,没有异常打印'] except后面不能为空 对象未声明类型 bailian [Finished in 0.1s]
没有异常执行else语句
try: a=['bailian'] except NameError: print('except后面不能为空') print('对象未声明类型') a=['bailian'] print(a[0]) else: print('发生异常不打印,没有异常打印') 发生异常不打印,没有异常打印
try-except-finally 无论是否出现异常,finally语句都要执行 有异常,执行finally语句
try-except-finally
有异常,执行finally语句
try: a=[bailian] except NameError: print('except后面不能为空') print('对象未声明类型') a=['bailian'] print(a[0]) else: print['发生异常不打印,没有异常打印'] finally: print('这是一定会执行的语句') except后面不能为空 对象未声明类型 bailian 这是一定会执行的语句 [Finished in 0.1s]
没有异常,执行finally语句
try: a=['bailian'] except NameError: print('except后面不能为空') print('对象未声明类型') a=['bailian'] print(a[0]) else: print('发生异常不打印,没有异常打印') finally: print('这是一定会执行的语句') 发生异常不打印,没有异常打印 这是一定会执行的语句
#########使用 raise 语句抛出一个指定的异常,raise 唯一的一个参数指定了要被抛出的异常
try: raise NameError('主动抛出一个异常') except NameError: print('An exception flew by!') raise An exception flew by! Traceback (most recent call last): File "D:\Users\荆楚\Desktop\python\input\input.py", line 3, in <module> raise NameError('主动抛出异常') NameError: 主动抛出异常
错误:Python 的语法错误或者称之为解析错,是初学者经常碰到的
异常:即便Python程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
大多数的异常都不会被程序处理,都以错误信息的形式展现
一个简单的异常
try-except-else
抛出异常
#########使用 raise 语句抛出一个指定的异常,raise 唯一的一个参数指定了要被抛出的异常