什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
一般情况下,在Python无法正常处理程序时就会发生一个异常。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

异常处理

捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

语法:

try:
 # 不能确定正确执行的代码
 num=int(input(‘请输入一个整数:’))
 except:
 print(‘请输入合法的字符!!!’)
 print(‘lalala’)

输入正确的字符:

python怎样制造异常 python中异常处理的方法_执行过程


输入错误的字符:

python怎样制造异常 python中异常处理的方法_执行过程_02


try:

num=int(input(‘请输入一个整数:’))
 res=8/num
 print(res)
 except ZeroDivisionError:
 print(‘0不能做除数’)
 except Exception as r:
 print(‘未知错误!’)
 #程序没有碰到致命的错,就执行else
 else:
 print(‘hello’)
 #无论是否遇到异常都会执行
 finally:
 print(’!!!’)

正常输入:

python怎样制造异常 python中异常处理的方法_Python_03


输入0时:

python怎样制造异常 python中异常处理的方法_python怎样制造异常_04


输入其他字符时:

python怎样制造异常 python中异常处理的方法_Python_05

函数异常

函数的错误:一级一级向上去找 最终会将异常传递到主函数里面去

def demo1():
 try:
 return int(input(‘请输入正确的整数:’))
 except Exception as r:
 print(‘未知错误 %s’ %r)
 def demo2():
 return demo1()print(demo2())

python怎样制造异常 python中异常处理的方法_抛出异常_06

主动抛出异常

需求:提示用户输入密码 如果长度小于8位 就抛出异常

def input_passwd():
 # 1.提示用户输入密码
 pwd = input(‘请输入密码:’)
 # 2.判断密码的长度
 if len(pwd) >=8:
 return pwd #如果密码长度大于等于8,则返回密码,代码执行完毕
 # 3.如果<8就主动抛出异常
 print(‘主动抛出异常’)
 # a.创建异常对象
 ex = Exception(‘密码长度不够,必须大于8位’)
 # b.主动抛出
 raise ex#注意:只抛出而不捕获 代码会报错
 try:
 print(input_passwd())
 except Exception as re:
 print(re)

输入正常时:

python怎样制造异常 python中异常处理的方法_抛出异常_07


输入异常时:

python怎样制造异常 python中异常处理的方法_python怎样制造异常_08

断言

可以理解为提前预言,让人更好的知道错误原因

def func(num,div):
 assert (div !=0),‘div不能为0’
 return num/divprint(func(10,0))
 print(’%%%’)

输入正常时:

python怎样制造异常 python中异常处理的方法_Python_09


输入异常时:

python怎样制造异常 python中异常处理的方法_抛出异常_10