Python基础之异常(day08)
·
一、异常处理的基本概念
在Python编程中,异常(Exception)是指程序运行时发生的错误或意外情况。当Python遇到无法正常执行的代码时,会"抛出"(raise)一个异常。如果不进行处理,程序将终止并显示错误信息。
异常的作用简单说就是:
- 防止程序崩溃,提高健壮性。
- 提供处理错误的机制。
二、基础异常处理语法
2.1 语法
try:
可能会引发异常的代码
except:
如果检测到异常要执行的代码
else:
没有检测到异常要执行的代码
finally:
无论是否检测到异常,都会执行的代码
- try中的是可能会引发异常的代码。
- except根据自己的异常类型判断是否捕获这个异常,一个try可以跟多个except,一个except可以跟多个错误,但是如果except的异常类型与代码出现的异常不匹配,那么程序就会在异常语句挂掉。
- finally在整个异常处理过程中只能有一个,可以用try - except - finally,也可以用try - finally。finally写在最后,无论错误是否发生都会被执行。
- 一个try - except - finally 语句中只能有一个else,并且else必须在except后面,如果没有异常发生那就会执行else。
注意:可以单独使用try…finally…,也可以配合except等使用。
2.2 代码示例
代码示例一:
try:
print(name) # name未定义
except:
print("这个是错误的哦!")
一般情况下try下面只放一行尝试执行的代码。try里面的代码检测出异常时,except才会被执行,如果try里面的代码没有被检测出异常,except下面的代码不会被程序执行。
执行结果:
这个是错误的哦!
代码示例二:
# name = 'PP'
try:
print(name)
except Exception:
print("这个是错误的哦!")
else:
print("这里是else的代码,没有异常就会执行。")
代码示例三:
try:
print(name)
except Exception:
print("有异常会执行的!")
else:
print("没有异常会执行的!")
finally:
print("不管如何最后都要执行的!")
这边可以单独使用try…finally…,也可以配合except等使用。
2.3 raise抛出异常
raise 是Python中用于主动抛出异常的关键字。当程序遇到无法继续执行的错误情况时,可以使用 raise 来中断程序执行并抛出异常。
# e = Exception("主动抛出了一个异常")
# raise e
代码示例
def login():
pwd = input("请输入您要输入的密码:")
if pwd == '123456':
return "密码输入成功"
e = Exception("密码错误")
raise e
try:
print(login())
except Exception as e:
print(e)
2.3 自定义异常
class MyCustomError(Exception):
pass
# 使用
def example_function():
raise MyCustomError("发生自定义错误!")
try:
example_function()
except MyCustomError as e:
print(f'捕获到自定义异常:{e}')
三、常见的Python内置异常
- BaseException:所有异常的基类
- Exception:常规错误的基类
- IOError:输入/输出错误
- ValueError:传入无效参数
- TypeError:类型操作错误
- IndexError:序列下标越界
- KeyError:映射键不存在
- ZeroDivisionError:除数为零错误
- SyntaxError:解释器语法错误,这是一个唯一不在运行时发生的异常,在运行前解释器就会显示其错误
四、性能考量
过度的使用异常处理对性能也会有一定影响:
- 异常处理比常规条件判断开销大
- 应避免在频繁执行的循环中使用异常处理逻辑
- 对于可遇见的错误条件,优先使用条件判断
更多推荐



所有评论(0)