Python中匹配正确异常:TypeError无法捕获None属性访问错误
问题解决:匹配NoneType属性访问错误的正确异常类型
你遇到的'NoneType' object has no attribute 'pop'或'NoneType' object has no attribute 'lower'错误,对应的异常类型是AttributeError,而非代码中使用的TypeError,因此TypeError分支不会被触发,程序会进入通用Exception分支。
异常类型说明:
- TypeError:当操作或函数被应用于类型不匹配的对象时触发(例如尝试将整数与字符串直接拼接)。
- AttributeError:当尝试访问对象不存在的属性或方法时触发,None作为NoneType的实例,本身没有
pop、lower这类属性,所以会触发该异常。
修改后的代码示例:
try: # 写入可能触发错误的业务代码 # 示例: # obj = None # obj.pop() # 或 obj.lower() except AttributeError: # 匹配到目标错误时执行的逻辑 print("处理NoneType访问不存在属性的错误") except Exception as e: input(e)
内容的提问来源于stack exchange,提问作者mahle-majstr Man
相关产品推荐
相关产品推荐

