美文网首页python入门
异常和异常处理

异常和异常处理

作者: 朱兰Juran | 来源:发表于2022-05-28 08:42 被阅读0次

    异常

    在以前的代码中已经看过异常。通常错误的代码或输入会引发异常。发生异常时,程序立即停止。

    下面的代码通过尝试将7除以0来产生 ZeroDivisionError 异常。

    num1 = 7

    num2 = 0

    print(num1/num2)

    结果:

    ZeroDivisionError: division by zero


    常见的异常

    不同的异常是由不同的原因引起的。

    常见的异常:

    ImportError: 无法引入模块或包。

    IndexError: 下标索引超出序列边界;

    NameError: 使用一个还未赋予对象的变量;

    SyntaxError: 代码逻辑语法出错,不能执行;

    TypeError: 传入的对象类型与要求不符;

    ValueError: 传入一个不被期望的值,即使类型正确。

    KeyError: 试图访问你字典里不存在的键。

    IOError: 输入输出异常。

    Python还有其他一些内置的异常,比如 ZeroDivisionError 和 OSError 。

    第三方库也经常定义自己的异常。


    异常处理(try)

    为了处理异常,并在发生异常时调用代码,可以使用 try/except 语句。

    try 块包含可能会引发异常的代码。如果发生该异常,try 块中的代码将停止执行,并且 except 块中的代码将被运行。如果没有错误发生,except 块中的代码不会运行。

    例如:

    try:

      num1 = 5

      num2 = 0

      print (num1 / num2)

      print("计算完成")

    except ZeroDivisionError:

      print("发生错误")

      print("您尝试进行除0操作")

    结果:

    发生错误

    您尝试进行除0操作

    在上面的代码中,except 语句定义了要处理的异常的类型(在我们的例子中是 ZeroDivisionError)。


    异常处理(try-except)

    try 语句可以有多个不同的 except 块来处理不同的异常。除了使用圆括号的块外,还可以将多个异常放入一个单独的块中,使 except 块处理所有这些异常。

    try:

      variable = 10

      print(variable + "hello")

      print(variable / 2)

    except ZeroDivisionError:

      print("Divided by zero")

    except (ValueError, TypeError):

      print("Error occurred")

    结果:

    Error occurred


    异常处理-没有指定任何异常

    没有指定任何异常的 except 语句将捕获所有错误。应该谨慎使用,因为他们可以捕捉到意想不到的错误并隐藏编程错误。

    例如:

    try:

      word = "spam"

      print(word / 0)

    except:

      print("发生错误")

    结果:

    发生错误

    在处理用户输入时,异常处理特别有用。

    相关文章

      网友评论

        本文标题:异常和异常处理

        本文链接:https://www.haomeiwen.com/subject/pzhiprtx.html