Python入门篇(四)---异常处理

目录

异常的概念和分类

内置异常

自定义异常

try...except...finally语句

try-except语句

finally 语句

自定义异常


异常的概念和分类

异常是指程序运行时出现的错误情况,例如除以零、变量未定义等。Python 提供了异常处理机制,使程序在出现异常时能够正确地处理错误,避免程序崩溃。Python 中的异常分为内置异常和自定义异常两种。 

内置异常

Python 提供了一些内置异常,可以直接在程序中使用。常见的内置异常包括:

  • ZeroDivisionError:除以零异常
  • NameError:未定义变量异常
  • TypeError:类型不匹配异常
  • ValueError:值异常
  • IndexError:索引错误
  • KeyError:键错误
  • FileNotFoundErrror:文件未找到异常

自定义异常

除了内置异常,Python 还可以自定义异常。自定义异常可以用来表示程序中的特殊情况,例如网络连接异常、数据库连接异常等。自定义异常需要继承自 Exception 类或其子类,通常包含一个错误信息。

以下是一个自定义异常的示例:

上述代码定义了一个名为 NetworkError 的异常类,继承自 Exception 类。该类包含一个名为 message 的属性,用于存储错误信息。

try...except...finally语句

try-except语句

在程序运行时,如果出现异常,可以使用 try-except 语句捕获并处理异常。try 语句包含可能引发异常的代码块,而 except 语句则包含在出现异常时需要执行的代码块。如果 try 语句中的代码块引发了异常,程序会跳转到 except 语句并执行其中的代码块。

以下是一个使用 try-except 语句处理异常的示例:

上述代码中,try 语句包含一个除以零的操作,很容易引发 ZeroDivisionError 异常。在 except 语句中,捕获该异常并打印出错误信息。

finally 语句

除了 try-except 语句外,Python 还提供了 finally 语句。finally 语句用于定义无论是否出现异常都要执行的代码块。通常用于释放资源等操作。

以下是一个使用 try-except-finally 语句处理异常的示例:

上述代码中,try 语句中打开一个文件并对其进行操作,如果文件未找到,则跳转到 except 语句中执行错误处理。无论是否出现异常,finally 语句都会执行 f.close() 操作,确保文件被正确关闭。

自定义异常

Python内置的异常类已经能够满足大部分情况下的异常处理需求,但在一些特殊的情况下,我们可能需要定义自己的异常类来处理特定的错误。

我们可以通过继承Python内置的Exception类来定义自己的异常类。下面是一个示例:

 

在上面的代码中,我们定义了一个名为MyError的自定义异常类,它继承自Python内置的Exception类。在MyError类的构造函数中,我们定义了一个message参数,用于接收错误消息。在__str__方法中,我们将message参数的值返回。

接下来,我们可以在程序中使用raise语句来抛出MyError异常,如下所示:

在上面的代码中,我们使用if语句检查用户输入的数是否小于0,如果是,则抛出MyError异常,并在except块中处理该异常。如果没有抛出异常,程序将继续执行。

自定义异常类可以帮助我们更好地组织和处理代码中的异常情况,使程序更加健壮和可读性更高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壹个命苦的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值