最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

python基础学习之python异常处理

XAMPP案例 admin 43浏览 0评论
异常(Exception)
您已经在之前的代码中看到了异常。当由于错误的代码或输入出现问题时,它们就会发生。发生异常时,程序将立即停止。以下代码通过尝试将7除以0来产生ZeroDivisionError异常。
num1 = 7
num2 = 0
print(num1 / num2)

dz085Python

不同的异常被抛出是因为不同的原因:

常见异常:

ImportError:导入失败;

IndexError:列表索引超出范围;

NameError:使用了未知变量;

SyntaxError:无法正确解析代码;

TypeError:对不适当类型的值调用函数;

ValueError:在正确类型的值上调用了一个函数,但是值不正确。

Tips:Python还有其他一些内置的异常,例如ZeroDivisionError和OSError。第三方库也经常定义自己的异常。

异常处理(Exception Handing)
dz0085Python
要处理异常并在发生异常时调用代码,可以使用try / except语句。
try语句块包含可能引发异常的代码。如果发生该异常,try块中的代码将停止执行,except块中的代码将运行。如果没有错误发生,那么except块中的代码将不会运行。
For example:
try:
    num1 = 7
    num2 = 0
    print(num1 / num2)
    print("Done calculation")
except ZeroDivisionError:
    print("An error occurred")
    print("due ti zero division")
Tips : 在上面的代码中,except语句定义了要处理的异常的类型(在我们的示例中为ZeroDivisionError)
 
一个try语句可以有多个不同的except块来处理不同的异常。

 也可以使用括号将多个异常放入单个except块中,以使except块处理所有异常。

For example:
try:
    variable = 10
    print(variable + "hello")
    print(variable / 2)
except ZeroDivisionError:
    print("Divided by zero")
except (ValueError, TypeError):
    print("Error occurred")
没有指定任何异常的except语句将捕获所有错误。应当谨慎使用它们,因为它们会捕获意外的错误并隐藏编程错误。
For example:
try:
    word = "Hello"
    print(word / 0)

except:
    print("An Error occurred")

finally子句

为了确保无论发生什么错误都可以运行某些代码,可以使用finally语句。  finally语句位于try / except语句的底部。  finally语句中的代码始终在try中的代码(可能在except块中)执行后运行。

For example:

try:
    print("Hello")
    print(1 / 0)
except ZeroDivisionError:
    print("Divided by zero")
finally:
    print("This code will run no matter what")

Tips :如果在前面的块之一中发生未捕获的异常,则finally语句中对的代码甚至会运行。

For example:

try:
    print(1)
    print(10 / 0)
except ZeroDivisionError:
    print(unknown_var)
finally:
    print("This is executed last")

抛出异常(Raising Exceptions)

你可以使用raise语句引发异常

For example:

print(1)
raise ValueError
print(2)

Tips : 你需要指定引发的异常的类型!!!

可以使用提供有关异常详细信息的参数来引发异常。

For example:

name = "123"
raise NameError("Invalid name!")

在except块中,raise语句可以不带任何参数来重新引发发生的任何异常。

For example:

try:
    num = 5 / 0
except:
    print("An error occurred")
    raise

Tips:运行一下代码看看它是如何工作的吧!

断言(Assertion)

断言是一种健全性检查,您可以在测试完程序后打开或者关闭它。测试表达式,如果结果为假,则引发异常。断言是通过assert语句来执行的。

For example:

print(1)
assert 2 + 2 == 4
print(2)
assert 1 + 1 == 3
print(3)

Tips : 程序员通常将断言放在函数的开头以检查有效输入,而在函数调用之后则进行断言以检查有效输出。

写在最后

本节给大家介绍了Python语法中的重点内容 —— 异常处理。在前期学习过程中用到的不多,但是不管在什么语言中都是适用的,所以提前掌握一遍没什么坏处。勤能补拙是良训,希望大家还是动手做一做,有问题可以私信我,欢迎交流和提出您的宝贵意见。

你要偷偷学Python,然后惊艳所有人。

转载请注明:XAMPP中文组官网 » python基础学习之python异常处理