# 一、什么是异常
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 python
的标准异常及异常处理详解戳此
# 二、异常处理
捕捉异常可以使用 try/except
语句。 try/except
语句用来检测 try
语句块中的错误,从而让 except
语句捕获异常信息并处理。如果不想在异常发生时结束程序,只需在 try
里捕获它。
# 三、语法:
# 3.1 try-except-else
以下为简单的 try....except...else
的语法:
try: | |
<语句> #运行别的代码 | |
except NameError: | |
<语句> #如果在 try 部份引发了 'name' 异常,执行此语句 | |
except: | |
<语句> #其他类型异常执行此语句 | |
else: | |
<语句> #如果没有异常发生 |
# 3.2 try-finally
try-finally
语句无论是否发生异常都将执行最后的代码,即便 try
中发生了异常, finally
中的命令也会执行。
try: | |
<语句> | |
finally: | |
<语句> #退出 try 时总会执行 |
# 四、自定义异常
在 Python
中,用户可以通过创建新类来定义此类异常。该异常类必须直接或间接地从 Exception
该类派生。大多数内置异常也是从此类派生的。
# 定义 Python 用户定义的异常 | |
class Error(Exception): | |
"""其他异常的基类""" | |
pass | |
class ValueTooSmallError(Error): | |
"""当输入值太小时引发""" | |
pass | |
class ValueTooLargeError(Error): | |
"""当输入值过大时引发""" | |
pass | |
# 我们的主程序 | |
# 用户猜出一个数字,直到他 / 她猜对为止 | |
# 你需要猜这个数字 | |
number = 10 | |
while True: | |
try: | |
i_num = int(input("输入数字: ")) | |
if i_num < number: | |
raise ValueTooSmallError | |
elif i_num > number: | |
raise ValueTooLargeError | |
break | |
except ValueTooSmallError: | |
print("这个值太小,请再试一次!") | |
print() | |
except ValueTooLargeError: | |
print("这个值太大,请再试一次!") | |
print() | |
print("恭喜你! 你猜对了.") |