在 Python 中引发异常

Rana Hasnain Khan 2023年1月30日 2022年5月17日
  1. 在 Python 中引发异常
  2. Python 中的 try 语句
  3. Python 中的 raise 关键字
  4. Python 中的 else 子句
在 Python 中引发异常

我们将介绍在 Python 中引发异常的不同方法。

在 Python 中引发异常

当我们编写 Python 程序并运行它们时,如果程序中缺少某些内容或代码中有错误,它会给出输出或错误。异常类似于 Python 编程语言中的异常。

当我们的程序做错事时,Python 会引发许多内置异常。如果在我们尝试运行程序时发生任何异常,它会停止程序并显示程序尝试运行代码时发生的异常。

本文通过一些简单的程序演示了如何使用 tryexceptfinally 语句处理 Python 程序中的异常。

Python 中的 try 语句

在 Python 中,我们可以通过在代码中使用 try 语句来处理异常,以最大限度地减少异常的机会。try 子句包含可能产生异常的关键操作。

except 子句包含解决异常的代码。

现在,让我们看一个例子,如果用户输入错误的值,使用 try 语句引发异常。

# python
Any_List = [2,'Husnain',4,6,8]

for value in Any_List:
    try:
        print("The value is", value)
        raci = 1/int(value)
        print("The reciprocal of", value, "is", raci)
        print("")
    except:
        print("Oops! There is a string in this list.")
        print("The reciprocal of", value, "cannot be done!")
        print("")

输出:

使用 try 语句在 python 中引发异常

上面的例子显示了这个程序遍历了 Any_List 中的条目,如果没有异常,except 块将被跳过,代码将顺利运行,直到它到达 Any_List 中的最后一个元素.

但是,如果在遍历 Any_List 中的所有元素时出现异常,except 块将被执行,并打印如上结果所示的值。

现在,让我们举一个例子,我们将在其中创建三个不同的 except 案例。我们在上面的程序中提到了只有一个 except 块的 try 语句。

但是在这个程序中,我们使用了三个 except 块,它们提供了更多选择子句的选项。

# python
VAR0 = 10
try:
    VAR1 = int("Husnain")
    VAR2 = int(56)

    result = (int(VAR1) * int(VAR2))/(VAR0 * int(VAR2))

except ValueError as ve:
    print(ve)
    exit()

except TypeError as te:
    print(te)
    exit()

except:
    print('Unexpected Error!')
    exit()
print (result)

输出:

使用多个 except 语句在 python 中引发异常

这是一个包含三个异常块的程序。现在,让我们来看看另一种方法,raise,它可以用来在 Python 中引发异常。

Python 中的 raise 关键字

当 Python 编程运行时代码中出现一些错误时,就会引发异常。我们可以使用 raise 关键字手动引发异常。

我们还可以将值传递给异常,以提供有关异常以及程序引发它的原因的更多信息。

让我们举个例子,我们将使用 raise 关键字手动引发错误。

# python
try:
    num=int(-23)
    if num <= 0:
        raise ValueError("entred number is not positive")
except ValueError as ve:
    print(ve)

输出:

在 python 中使用 raise 关键字引发异常

上面的例子表明,输入负数会引发我们通过 raise 关键字设置的异常。

现在,让我们来看另一个示例,在该示例中,我们将使用 else 子句手动引发异常。

Python 中的 else 子句

在某些情况下,当我们想在 try 语句下运行程序没有任何错误时,我们会使用 else 语句来完成程序处理。

# python
try:
 number = int(21)
 assert number % 2 == 0

except:
 print("It is not a even number!")
else:
 reciprocal = 1/number
 print(reciprocal)

输出:

使用 else 语句在 python 中引发异常

从上面的例子可以看出,如果输入的数是偶数,那么程序输出这个数的倒数,如果不是偶数,就会抛出异常,如上结果所示。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

相关文章 - Python Exception