page contents

Python 异常语法:小白入门指南!

刚学 Python 的你,是不是经常遇到代码报错就慌了神?其实,那些红色的错误提示并非洪水猛兽,而是 Python 在友好地告诉你 "这里出问题啦"。今天就来聊聊 Python 里专门对付错误的 "异常处理机制",让你从此不怕报错,轻松驾驭代码!

attachments-2025-08-vjPAahiN68a2cb3cd7239.jpg刚学 Python 的你,是不是经常遇到代码报错就慌了神?其实,那些红色的错误提示并非洪水猛兽,而是 Python 在友好地告诉你 "这里出问题啦"。今天就来聊聊 Python 里专门对付错误的 "异常处理机制",让你从此不怕报错,轻松驾驭代码!

一、异常:代码世界的"小意外"

首先得明白,异常就是程序运行时出现的错误。比如你想把字符串和数字相加,Python 就会生气地抛出 "TypeError";要是你试图打开一个不存在的文件,就会遇到 "FileNotFoundError"。

这些异常可不是凭空出现的,它们像家族一样有明确的 "辈分":所有异常的老祖宗是 "BaseException",它下面有个重要的分支 "Exception",我们平时遇到的绝大多数错误(比如上面提到的 TypeError)都属于这个分支。

二、try-except:异常的"防护盾"

既然有异常,那肯定得有应对之法,"try-except" 就是最常用的 "防护盾"。它的用法很简单:把可能出问题的代码放进 "try" 块里,再在 "except" 块里写明如果出了特定问题该怎么办。

try:

    num = int(input("请输入一个数字:"))

    print(10 / num)

except ZeroDivisionError:

    print("除数不能为0哦!")

except ValueError:

    print("请输入正确的数字!")

上面的代码中,如果输入的不是数字,就会触发 "ValueError",执行对应的提示;如果输入 0,就会触发 "ZeroDivisionError",给出相应提醒。这就是多异常处理,能精准应对不同情况。

三、try-except-else:一切顺利才执行

有时候,我们希望当代码没有出现异常时,再执行一些操作,这时候 "else" 就派上用场了。

try:

    num = int(input("请输入一个数字:"))

    result = 10 / num

except (ZeroDivisionError, ValueError) as e:

    print("出错啦:", e)

else:

    print("计算结果是:", result)

当输入合法的数字且不为 0 时,就会执行 "else" 里的代码,打印出计算结果。

四、try-except-finally:必做的"收尾工作"

不管代码有没有出现异常,有些操作是必须要做的,比如关闭文件、释放资源等,这时候就需要 "finally" 了。

file = None

try:

    file = open("test.txt", "r")

    content = file.read()

    print(content)

except FileNotFoundError:

    print("文件不存在哦!")

finally:

    if file:

        file.close()

        print("文件已关闭")

不管文件有没有找到、有没有成功读取内容,"finally" 里的代码都会执行,确保文件被关闭。

五、主动"惹事":raise语句和自定义异常

有时候,我们需要主动抛出异常来提醒自己或他人代码中存在的问题,这时候可以用 "raise" 语句。而且,我们还能根据自己的需求定义异常。

# 自定义异常

class AgeError(Exception):

    def __init__(self, message):

        self.message = message

try:

    age = int(input("请输入年龄:"))

    if age < 0 or age > 120:

        raise AgeError("年龄必须在0到120之间哦!")

except AgeError as e:

    print("年龄输入有误:", e.message)

except ValueError:

    print("请输入数字哦!")

在这个例子中,当输入的年龄不在合理范围内时,我们就主动抛出自己定义的 "AgeError" 异常。

六、异常链:错误的"连锁反应"

有时候,一个异常的发生可能会引发另一个异常,就像多米诺骨牌一样,这就是异常链。我们可以通过 "raise...from" 来明确异常之间的因果关系。

try:

    num = int(input("请输入一个数字:"))

    result = 10 / num

except ValueError as e:

    raise RuntimeError("处理输入时出错啦") from e

如果输入的不是数字,会先产生 "ValueError",然后这个异常又引发了 "RuntimeError",通过 "from e" 就把这两个异常关联了起来,方便我们追踪错误根源。

总结:异常处理让代码更健壮

掌握了这些异常处理的语法特性,就像给你的代码穿上了一层 "防弹衣",让你在编程的道路上走得更稳、更自信。记住今天讲的六个核心点:

异常是程序运行时的错误,有明确的继承关系

try-except是基本的异常捕获结构

else块在无异常时执行

finally块确保资源释放等收尾工作

raise语句可以主动抛出异常

自定义异常和异常链能更好地处理复杂错误

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2025-08-18 14:42
  • 阅读 ( 17 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1335 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2172 文章
  3. Pack 1335 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章