Python异常
异常
-
定义:异常是指在语法正确的前提下,程序运行时报错就是异常
-
当Python脚本发生异常时我们应该捕获处理它,否则程序会终止执行
print("hello world") print(1/0) print("代码结束") -
异常处理 try...except
-
程序从上往下执行,先执行try中的代码,如果代码中有异常,则不会继续执行try下面的代码,会执行except中的异常diamante
-
如果try没有异常,则不会执行except中的代码
try: print("hello") # print(1 / 0) print("world") except: print("try中的代码有问题") print("代码结束") -
异常类型:ZeroDivisionError,IndexError,NameError,FileExistsError,FileNotFoundError,TypeError
-
-
try...except...else
-
try正常执行结束,不会走except,走else
-
try中有异常,会走except,不走else
try: print("a") # print(1/0) print("b") # except ZeroDivisionError: # print("0不可以是除数") except NameError: print("出现命名错误") else: print("没有异常") 不写具体的异常类型,默认捕获所有异常 -
Exception 是所有异常的父异常,try中抛出的异常,Exception 都可以捕获
-
-
finally:无论代码是否有异常,都会走finally
try: print("a") # print(1/0) print("b") except BaseException: print("出现异常") else: print("没有异常") finally: print("有无异常都会执行的代码") -
获取异常信息描述
try: 执行代码 except Exception as e: print(e) try: print("a") print(1/0) print("b") except Exception as e: print(e)
触发异常
-
用户可以根据业务逻辑手动的抛出异常。
并且用户可以根据需求来抛出系统异常(Python 已经定义好的异常)和用户自定义的异常
#用户注册,输入注册用户名,用户名全为字母,抛出异常 try: name = input("请输入注册用户名:") if name.isalpha(): raise Exception("不可以全部是字母") except Exception as e: print(e) -
当程序中的异常类型不满足时,我么可以自定义异常类型
#用户注册,输入注册用户名,如果用户名长度小于5,抛出自定义异常,输出异常信息:输入太短 class ShortInputException(Exception): # def __init__(self,msg): # self.msg = msg # # def __str__(self): # return self.msg pass try: name = input("请输入注册用户名:") if len(name)<5: raise ShortInputException("输入太短") except Exception as e: print(e)-
判断输入的字符串长度,如果小于指定长度就抛出自定义异常
class MyException(Exception): def __init__(self,length,atleast): self.length = length self.atleast = atleast def __str__(self): return f"你输入字符串长度是{self.length},规定长度是{self.atleast}" try: content = input("请输入内容:") if len(content)<5: raise MyException(len(content),5) except Exception as e: print(e)
-
重复学习是成功之母

浙公网安备 33010602011771号