首页 > 应用开发 > Python > Python稳基修炼之异常处理
AttributeError 试图访问一个对象没有的属性,比如test.a,但是test没有属性aIOError 输入/输出异常;基本上就是无法打开文件ImportError 无法引入模块或包;基本上就是路径问题或名称错误IndentationError 语法错误(的子类) ;代码没有正确缩进或对齐IndexError 下标索引超出序列边界,比如当a只有三个元素,却试图访问a[5]KeyError 键异常,试图访问字典里不存在的键KeyboardInterrupt Ctrl+C被按下NameError 使用一个还未被赋予对象的变量SyntaxError Python代码非法,代码不能编译(基本上就是语法错误)TypeError 传入对象类型与要求的不符合UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它ValueError 值异常,传入一个调用者不期望的值,即使值的类型是正确的
ArithmeticErrorAssertionErrorAttributeErrorBaseExceptionBufferErrorBytesWarningDeprecationWarningEnvironmentErrorEOFErrorExceptionFloatingPointErrorFutureWarningGeneratorExitImportErrorImportWarningIndentationErrorIndexErrorIOErrorKeyboardInterruptKeyErrorLookupErrorMemoryErrorNameErrorNotImplementedErrorOSErrorOverflowErrorPendingDeprecationWarningReferenceErrorRuntimeErrorRuntimeWarningStandardErrorStopIterationSyntaxErrorSyntaxWarningSystemErrorSystemExitTabErrorTypeErrorUnboundLocalErrorUnicodeDecodeErrorUnicodeEncodeErrorUnicodeErrorUnicodeTranslateErrorUnicodeWarningUserWarningValueErrorWarningZeroDivisionError
while True: cou = input('请输入你的账号:\n') if cou.isdigit(): #主逻辑,如果全是数字才执行转换int格式操作 int(cou) break #下面几个就为异常准备的逻辑,在写程序时就应该考虑到各种可能出现的异常 elif cou.isspace(): print('账号内不应有空格,请重新输入') continue elif len(cou)==0: print('您输入的长度为0,请重新输入') elif cou.isalpha(): print('账号内不应有字母,请重新输入') else: print('输入内有其他非法输入,请重新输入') 123456789101112131415 复制代码

while True: try: #主逻辑 cou = input('请输入数字:\n') int(cou) cou2 = input('请再输入数字:\n') int(cou2) except ValueError as e: #ValueError是异常类型,表示如果出现值的异常,就执行except下的逻辑 print(e,'请重新输入') except KeyError as e: #如果出现键的异常 print(e,'请重新输入') except IndexError as e: #如果出现语法异常 print(e,'请重新输入') except Exception as e: #如果出现其他异常 print(e,'请重新输入') else: print('try内的代码没有异常就执行else') #没有异常就会执行else的内容 finally: print('无论try中有无异常,finally都会执行') break #常用来做清理内存操作,或者跳出循环 123456789101112131415161718192021222324 复制代码

name = 'ViewIn' try: raise TypeError('类型错误') #用raise主动触发异常 except Exception as e: print(e) 12345 复制代码

print('---------------------------line1') assert 1 == 1 print('===========================line2') #如果assert的表达式成立,则继续执行,否则程序终止 #相当于 if 1 != 2: raise AssertionError #主动抛出一个异常 #断言后面有一万行代码 123456789 复制代码

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69984138/viewspace-2728800/ ,如需转载,请注明出处,否则将追究法律责任。