异常

CM Lv3

异常

1.了解异常

异常:当检测到一个错误的时候,Python解释器就无法继续执行了,反而会出现一些错误的提示,这就是所谓的“异常”,也就是我们说的bug。

2. 异常的捕获方法

2.1捕获常规异常

  1. 基本语法:

    1
    2
    3
    4
    try:
    可能发生错误的代码
    except:
    如果出现异常执行的代码
  2. 进阶语法:捕获指定异常

    1
    2
    3
    4
    try:
    print(name)
    except NameError as e:
    print('name变量名称为定义错误')
  • 异常的类型是各种各样的。如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
  • 一般try下方只放一行尝试执行的代码。
  • 这里的e是别名。
  1. 进阶语法:捕获多个异常
    1
    2
    3
    4
    try:
    print(1/0)
    except(NameError,ZeroDivisionError) as e:
    print('出现变量为定义或者除以0异常错误...')
  • 当捕获多个异常的时候,可以把要捕获的异常类型的名字,放到except后,并且使用元组的方式进行书写。
  1. 捕获所有异常
  • 其实第一种基本语法就是捕获所有异常了。但是还有一种写法,表示所有异常类型。
1
2
3
4
try:
print('name')
except Exception as e:
print('出现异常了')
  • 以后一般用这种方式,因为Exception其实是顶级的异常。

2.2 异常的else和finally

  • finally一般用于资源的关闭
  • else和finally是可选的,可写可不写。

3. 异常的传递

  • 异常的传递性告诉我们,如果想要捕获异常的话,并不需要深入到它真正出现异常的那一句话,只要函数之间有调用关系,也就是层级关系,在最顶级的调用这里,依旧可以捕获异常。

4. 模块

4.1 Python自带模块

  • 中括号在Python里面是可选项,也就是可写可不写。

  • 用这种方法就只会针对这个模块里面的某一个功能使用。
  • *号代表的是所有的意思。这样子用的时候就不用写time.sleep(5)了,就直接写sleep(5)就行了

  • 就是给具体的模块和具体的功能改名而已。

  • 模块的导入一般写在开头。

4.2 自定义模块

  • 就是只需要创建一个Python文件,在里面写好函数,然后要调用的时候import这个文件,就可以直接调用这个文件里面的函数了。

  • 就是说自定义的模块,本身也是一个py文件,然后我们测试的时候,直接在这个模块里面调用这些函数。但是在其他的py文件如果import这个模块的话,相当于c语言的include了,就是等价于直接把模块的所有内容复制粘贴过来了。这样子测试的时候调用函数,现在也会被执行了。所以Python有一个内置变量__name__,如果你在模块内运行的话,这个变量就等于__main__,如果你在其他文件运行的话,就不等于,这样子测试的函数就不会被执行了,但是我们测试的时候它仍然还是会被执行。

  • 最终能import到哪些函数取决于__all__变量。
  • 如果你手动导入,也就是用from的话,那也可以,那就不受__all__的影响了。

5. 自定义Python包

  • 就是说模块 + init.py就等于一个Python的包。
  • init.py是一个特殊的文件,只要这个文件存在于文件夹里面,那么这个就是一个Python的包。否则只是一个普通的文件夹。

创建Python包:

  • 导入包以后,还有继续选择要导入哪个文件。包名.文件名

6. 安装第三方包

安装第三方包:

  • Title: 异常
  • Author: CM
  • Created at: 2023-07-23 14:02:00
  • Updated at: 2023-07-23 21:35:51
  • Link: https://redefine.ohevan.com/2023/07/23/异常/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments