宁波做网站价格微商城系统网站模板
2026/3/9 17:09:17 网站建设 项目流程
宁波做网站价格,微商城系统网站模板,网站建设架构图,企业网络推广分析论文目录 1#xff09;最基本形态#xff1a;try except 运行会输出什么#xff1f; 2#xff09;捕获“特定异常”#xff1a;更推荐 3#xff09;拿到异常对象#xff1a;看错误信息 4#xff09;多个 except#xff1a;按顺序匹配 5#xff09;except 可以一次…目录1最基本形态try except运行会输出什么2捕获“特定异常”更推荐3拿到异常对象看错误信息4多个 except按顺序匹配5except 可以一次捕获一组异常6try except else没出错才会走 else7try finally不管成败都执行常用于资源释放8完整形态try / except / else / finally记这个万能模板9“报错时代码会输出什么”——两种情况情况 A异常没被捕获最常见的“红字大爆炸”情况 B异常被捕获了程序继续跑10怎么“原样打印完整报错堆栈”调试神器11raise你也可以主动抛异常12异常体系的大树你最需要认识的几层13常见内置异常名称按类别记忆语法/缩进代码还没跑就挂类型和值你传参传错了最常见数学与数值索引/键查找文件/系统/IO统称 OSError 分支导入与模块断言与运行时迭代与生成器14几个实战建议少踩坑我会先把 try/except 的语法形态讲清楚再用一组可运行的小例子演示无异常、捕获特定异常、多个 except、else、finally、raise、以及 traceback 输出在终端里长什么样。下面把try / except讲透一点它解决的问题就一句话——把“可能会炸”的代码包起来炸了就按你写的策略处理不炸就继续走。1最基本形态try excepttry: x 1 / 0 except: print(出错了但我兜住了)运行会输出什么1/0会抛ZeroDivisionError被except:捕获后不会让程序崩溃输出出错了但我兜住了⚠️ 不建议裸写except:会把几乎所有异常都吃掉调试会很痛苦后面说更推荐写法。2捕获“特定异常”更推荐try: x 1 / 0 except ZeroDivisionError: print(除数不能为 0)输出除数不能为 0好处只兜你预期的错误别的错误照样暴露出来方便定位。3拿到异常对象看错误信息try: int(abc) except ValueError as e: print(转换失败, e)输出类似转换失败 invalid literal for int() with base 10: abcas e让你能拿到异常对象打印更具体的信息或者写日志。4多个 except按顺序匹配try: x int(abc) / 0 except ValueError: print(先处理 ValueError) except ZeroDivisionError: print(再处理 ZeroDivisionError)这里int(abc)先炸所以输出先处理 ValueError要点只会进入第一个匹配到的 except后面的不会执行。5except 可以一次捕获一组异常try: x int(abc) / 0 except (ValueError, ZeroDivisionError) as e: print(捕获到, type(e).__name__, e)输出类似捕获到 ValueError invalid literal for int() with base 10: abc6try except else没出错才会走 elsetry: x 10 / 2 except ZeroDivisionError: print(除 0 了) else: print(没出错结果是, x)输出没出错结果是 5.0else很适合放“依赖 try 成功的后续逻辑”让结构更清爽。7try finally不管成败都执行常用于资源释放try: f open(some.txt, w) f.write(hello) finally: f.close() print(文件已关闭)无论中间是否异常都会输出文件已关闭8完整形态try / except / else / finally记这个万能模板try: ... except SomeError as e: ... else: ... finally: ...执行顺序规则非常重要try 抛异常→ 进入匹配的except→ 最后一定执行finallytry 不抛异常→ 跳过except→ 执行else→ 最后一定执行finally9“报错时代码会输出什么”——两种情况情况 A异常没被捕获最常见的“红字大爆炸”比如x 1 / 0 print(我会执行吗)终端通常会输出Traceback回溯类似这样格式大致一致路径/行号会不同Traceback (most recent call last): File demo.py, line 1, in module x 1 / 0 ZeroDivisionError: division by zero并且程序直接终止print(我会执行吗)不会执行。情况 B异常被捕获了程序继续跑try: x 1 / 0 except ZeroDivisionError: print(我处理了这个错误) print(我还能继续运行)输出我处理了这个错误 我还能继续运行10怎么“原样打印完整报错堆栈”调试神器有时候你想捕获异常同时把完整 traceback 打出来import traceback try: x 1 / 0 except Exception: traceback.print_exc() # 打印完整堆栈 print(但程序没有崩)输出会包含那段Traceback ... ZeroDivisionError...然后继续打印但程序没有崩11raise你也可以主动抛异常def check_age(age): if age 0: raise ValueError(age 不能为负数) return age try: check_age(-1) except ValueError as e: print(捕获到, e)输出捕获到 age 不能为负数Python 里“异常名称”也就是异常类非常多但它们有一棵清晰的继承树。先把骨架抓住再记常见分支就够用了。12异常体系的大树你最需要认识的几层BaseException最顶层几乎所有异常的祖宗SystemExitsys.exit()触发程序准备退出一般别乱抓KeyboardInterrupt你按CtrlC触发一般别吞掉GeneratorExit生成器关闭相关Exception我们日常业务代码通常捕获的都是它的子类所以你经常会看到建议写try: ... except Exception as e: ...而不是except BaseException因为后者会把 CtrlC、退出信号也吞了容易“关不掉程序”。13常见内置异常名称按类别记忆下面这些是日常最常见的远比死记全部更实用语法/缩进代码还没跑就挂SyntaxError语法错误IndentationError/TabError缩进/Tab 混用问题类型和值你传参传错了最常见TypeError类型不对比如把字符串当函数调用、把None当可迭代ValueError类型对但值不合法重点后面讲AttributeError对象没有这个属性/方法obj.xxx不存在NameError变量名没定义UnboundLocalError局部变量引用前未赋值NameError 的子类数学与数值ZeroDivisionError除以 0OverflowError数值溢出少见但有FloatingPointError浮点错误通常需特定设置才会显现ArithmeticError算术错误的父类一般不直接抛索引/键查找IndexError下标越界list/tupleKeyError字典 key 不存在LookupErrorIndexError/KeyError 的父类文件/系统/IO统称 OSError 分支FileNotFoundError文件不存在PermissionError权限不足IsADirectoryError/NotADirectoryErrorTimeoutError超时OSError上面这些的父类系统调用失败大多归这类导入与模块ImportError导入失败ModuleNotFoundError模块找不到ImportError 子类断言与运行时AssertionErrorassert失败RuntimeError运行时错误很多库爱用它兜底比如 PyTorch 常见NotImplementedError方法未实现常用于抽象基类/占位迭代与生成器StopIteration迭代结束for 循环内部会处理掉你一般见不到StopAsyncIteration异步迭代结束14几个实战建议少踩坑✅优先捕获具体异常except ValueError:比except:更健康✅不要用 try 包太大块代码范围越小越容易定位是谁炸了✅需要清理资源用 finally 或 with文件/锁/连接⚠️except Exception会捕获大部分“普通异常”但不会捕获像KeyboardInterrupt/SystemExit这类“系统级退出信号”通常也不该捕获

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询