异常处理:
异常捕捉是一种捕捉异常的简单语法,可以在程序开发过程中添加为尝试捕捉异常。
Try:代码试图执行,除了:错误处理
试着在下面填密码试试,不确定代码能不能正常执行。
如果没有,请填写以下失败尝试的代码。
示例:简单的异常捕获演练要求用户输入一个整数。
Try: #无法确定要执行的代码#提示用户输入一个数字num=int(input('请输入一个数字:'))except: print('请输入一个正确的数字!')打印('-'*50)
错误类型捕获:
程序执行时,可能会遇到不同类型的异常,针对不同类型的异常需要做出不同的响应。此时,有必要指定错误类型。
Try: #代码passexcept错误类型13360 #对于错误类型1,相应的代码处理passexcept(错误类型2,错误类型3) 3360 #代码处理passexcept异常作为错误类型2和3的结果3360print('未知错误%s' %result ')。
示例需求:
提示用户输入一个整数。
使用8除以用户输入的整数并输出。
而True: try: #则提示用户输入整数num=int(input(' enter a integer:'))#如果输入的不是整数,则会报错,如果输入的是0,也会报错。在这里,我们需要捕捉异常赋值错误的第一个单词作为关键字进行处理。result=8/num print(result)except zerodivisionerror 3360 print('数学错误')except ValueError: print('请输入一个数字')
捕获未知错误:
结果为3360print(未知错误%s' %result ')时出现异常
您可以将未知错误输出到控制台,而不报告错误崩溃。使用Exception关键字。
Try: #提示用户输入整数num=int(input(' enter a integer:'))#如果输入的不是整数,会报错。如果输入为0,它也会报告一个错误。这里我们需要捕捉异常的赋值错误。
误的第一个单词作为关键字进行处理result = 8 / num
print(result)
except ValueError:
print("请输入数字")
except Exception as result:
print("未知错误%s"%result)
异常捕获的完整语法:
try:
#尝试执行的代码
pass
except 错误类型1的第一个关键字:
#针对错误类型1对应的代码处理
pass
except 错误类型2的第一个关键词:
#针对错误类型2的对应代码处理
pass
except (错误类型3,错误类型4):
#针对错误类型3,4的对应代码处理
pass
except Exception as result:
#打印错误信息
print(result)
else:
#没异常会执行的代码
pass
finally:
#无论是否有异常,都会执行的代码
print("无论是否存在异常,都会执行的代码")
示例代码:
try:
# 提示用户输入一个整数
num = int(input("输入一个整数:"))
# 输入不是整数就报错,输入0也是报错,这里我们需要捕获异常 赋值错误的第一个单词作为关键字进行处理
result = 8 / num
print(result)
except ValueError:
print("请输入数字")
except Exception as result:
print("未知错误%s" % result)
else:
print("尝试成功!")
finally:
print("无论是否出现错误都会执行的代码")
print("==="*20)
异常的传递:
当函数/方法执行出现异常时,会将异常传递给函数/方法的调用一方
如果传递到主程序,仍然没有异常处理,程序才会被终止
所以说,只需要在主程序中做一个异常处理就可以完成代码的异常处理
示例代码:
def demo1():
return int(input("输入整数:"))
def demo2():
return demo1()
#利用异常的传递性,在主程序捕获异常
try:
print(demo2())
except Exception as result:
print("程序出现了%s错误"%(result))
抛出raise异常:
主动抛出异常
python中提供了一个 Exception 异常类
在开发时,如果满足特定业务的需求时,希望抛出异常,可以
创建一个 Exception的对象
使用 raise关键字抛出异常对象
需求案例:
定义 input_password函数,提示用户输入密码
如果用户输入长度<8,抛出异常
如果用户输入长度>=8 返回输入的密码
def input_password():
#1.提示用户输入密码
result =input("请输入密码")
#2.判断密码长度 >=8 ,返回用户输入的密码
if len(result) >=8:
return result
#3.如果<8 主动抛出异常
print("主动抛出异常!")
#1>创建异常对象 -可以使用错误信息字符串作为参数
ex =Exception("密码长度不够!")
#2> 主动抛出异常
raise ex
#提示用户输入密码
try:
print(input_password())
except Exception as result:
print(result)
以上为python全部的全部的异常处理,还是比较简单的!