Python else 子句

从上一节可以知道,try except 中的 except 语句是代码块发生异常时的处理代码。如果希望代码块没有发生异常时去做一些事情,此时该怎么办呢?实际上,Python 为我们提供了 else 子句来实现该功能,也就是 try...except...else。

语法:

try:
    ……
except 具体异常类型as reason:
    ……
else:
    ……

说明:

当程序没有发生异常时,通过添加一个 else 子句做一些事情(比如输出一些信息)很有用,可以帮助我们更好地判断程序的执行情况。

从之前的学习可以知道,else 子句不仅可以跟 ifwhile 等语句搭配,还可以跟 try 语句搭配。

示例: else 子句的基本用法

try:
    a = 1
    print(a)
except NameError:
    print('变量不存在!')
else:
    print('程序正常运行!')

运行结果如下。

1
程序正常运行!

分析:

可能有些小伙伴会好奇,上面的例子如果改写成下面这样,效果不是完全一样吗?

try:
    a = 1
    print(a)
    print('程序正常运行!')  # 直接放在 try 里面
except NameError:
    print('变量不存在!')

对于这种简单例子来说,效果确实是一样的。但在实际开发中,我们有一个极其重要的原则:try 块里面的代码应该越少越好,只放那些真正有可能出错的代码。

  • 如果放在 try 里面:这段新增的代码如果自己发生了异常,也会被下面的 except 意外捕获,这会隐藏掉真正的 Bug。
  • 如果放在 else 里面:else 里的代码是不受前面 except 保护的。这也就意味着,只有当 try 里的危险代码安全通过后,才会放心地执行 else 里的后续逻辑。这让代码的职责更加明确,排错也更容易。

上一篇: Python try except

下一篇: Python finally 子句

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号