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

目录

异常的概念和分类

内置异常

自定义异常

try...except...finally语句

try-except语句

finally 语句

自定义异常


异常的概念和分类

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

内置异常

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

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

自定义异常

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

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

Python入门篇(四)---异常处理_第1张图片

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

try...except...finally语句

try-except语句

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

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

Python入门篇(四)---异常处理_第2张图片

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

finally 语句

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

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

Python入门篇(四)---异常处理_第3张图片

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

自定义异常

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

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


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

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

Python入门篇(四)---异常处理_第4张图片

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

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

你可能感兴趣的:(python小白看这里,python,开发语言)