首页 > 编程知识 正文

python异常处理语句assert,异常处理语句

时间:2023-05-05 15:37:52 阅读:270011 作者:1275

try…except… else…finally…

1)普通的异常处理:

import timetry:# 如果你觉得代码可能出现问题, 那么放在try语句中, 只执行一次; print(s)#可能NameErrorexcept NameError as e:# 对于异常进行一个重命名;记录了异常的详细信息; # 可能执行一次, 也可能不执行; print('名称错误') with open('except.log','w') as f: #把异常内容写入except.log文件 f.write('名称错误')finally:# 无论是否出现异常, 肯定会执行一次 print('处理结束')

输出:

名称错误处理结束

并且会得到一个except.log文件

当没有错误时,except不执行

import timetry: # print(s) print('hello') # 没有错误,except不执行except NameError as e: print('名称错误') with open('except.log','w') as f: f.write('名称错误')finally: print('处理结束')

输出:

hello处理结束

可以调整except.log文件记录格式显示时间错误内容等:

import timetry: # print(s) print('hello') # 没有错误,except不执行except NameError as e: print('名称错误') with open('except.log','w') as f: f.write(time.ctime()+' ') #打印时间 f.write(str(e))# 打印错误详情finally: print('处理结束')

try语句中一旦出现问题, 后面的语句(try里面的)不执行。

import timetry: # 如果你觉得代码可能出现问题, 那么放在try语句中, 只执行一次; print('hello') with open('/etc/aa') as f: # try语句中一旦出现问题, 后面的语句(try里面的)不执行 print(f.read()[:5]) print("文件读取结束") li = [1, 2, 3, 4] print(li[5]) print(s) print("hello")except (NameError, IndexError) as e: # 对于异常进行一个重命名;记录了异常的详细信息; # 可能执行一次, 也可能不执行; # print("名称错误") with open("except.log", 'a+') as f: f.write(time.ctime() + ' ' + str(e) + 'n')finally: # 无论是否出现异常, 肯定会执行一次, print("处理结束")

并且except.log文件什么都不记录。

2)python内置异常处理
含有父子级关系

BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration +-- StopAsyncIteration +-- ArithmeticError | +-- FloatingPointError | +-- OverflowError | +-- ZeroDivisionError +-- AssertionError +-- AttributeError +-- BufferError +-- EOFError +-- ImportError | +-- ModuleNotFoundError +-- LookupError | +-- IndexError | +-- KeyError +-- MemoryError +-- NameError | +-- UnboundLocalError +-- OSError | +-- BlockingIOError | +-- ChildProcessError | +-- ConnectionError | | +-- BrokenPipeError | | +-- ConnectionAbortedError | | +-- ConnectionRefusedError | | +-- ConnectionResetError | +-- FileExistsError | +-- FileNotFoundError | +-- InterruptedError | +-- IsADirectoryError | +-- NotADirectoryError | +-- PermissionError | +-- ProcessLookupError | +-- TimeoutError +-- ReferenceError +-- RuntimeError | +-- NotImplementedError | +-- RecursionError +-- SyntaxError | +-- IndentationError | +-- TabError +-- SystemError +-- TypeError +-- ValueError | +-- UnicodeError | +-- UnicodeDecodeError | +-- UnicodeEncodeError | +-- UnicodeTranslateError +-- Warning +-- DeprecationWarning +-- PendingDeprecationWarning +-- RuntimeWarning +-- SyntaxWarning +-- UserWarning +-- FutureWarning +-- ImportWarning +-- UnicodeWarning +-- BytesWarning +-- ResourceWarning

可以ctrl进入IndexError,查看继承关系

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。