首页 > 编程语言 >python中的内置异常

python中的内置异常

时间:2023-05-11 22:34:53浏览次数:68  
标签:内置 python 代码 except try 执行 异常 捕获

1 关于异常

代码中遇到错误时会引发异常,python中有许多内置的异常类来表示某种具体异常,当然也可以自定义异常类,当异常未被捕获或处理时,代码会在引发异常处终止,并将异常信息显示在回溯信息中(tarceback)
如下
image
上面可在traceback中看到一些关于异常的具体信息,由于改异常未被捕获或处理,代码在异常
处就停止执行

2 python的内置异常

基础异常类

1)BaseException

在python中,所有的异常类都是BaseException的儿子 孙子、、、、,反正他是所有异常类的祖宗

2)Exception

所有非系统异常类都是从它这继承的。平时常见的异常类大多数都是从它这里来的。如ValueError ZeroDivisionError等等

3)ArithmeticError

此基类用于派生针对各种算术类错误而引发的内置异常: OverflowError, ZeroDivisionError, FloatingPointError。
ArithmeticError也是从Exception那里继承下来的
image

4)LookupError

此基类用于派生当映射或序列所使用的键或索引无效时引发的异常: IndexError, KeyError。
它也是从Exception那里继承下来的

5)BufferError

当与缓冲区相关的操作无法执行时将被引发

3 一些具体的异常

AssertionError
AttributeError
IndexError
ZeroDivisionError
ValueError
OSError
KeyboardInterrupt

KeyboardInterrupt

当用户按下中断键 (通常为 Control-C 或 Delete) 时将被引发。 在执行期间,会定期检测中断信号。 该异常继承自 BaseException 不会被处理 Exception 的代码捕获
如下
image
当我按下ctrl+c引发KeyboardInterrupt,没有进入except语句,print()的代码未执行
写成 except Exception时,只会捕获Exception类型及它子类的异常。

image
如上,就可以捕获BaseException及其子类的异常

4 捕获异常

try/except 发生指定异常时,执行相应代码

用try/except语句捕获异常
image
如上,可以在except后面指定要捕获那些异常,一旦发生目标异常,就会执行对应的except子句的代码。
用except xxx as e,可以把异常信息存储在变量e中

在try语句中使用多个except

image
如上,也可以通过多个except来捕获多个异常

注意,之前说代码执行到异常发生出就会终止,之后的代码不会执行。这句话在try语句里面不成立
try语句就在发生指定异常后,接着去执行一些代码

在try中使用else子句,未发生异常时的情况执行相应代码

image
如上,注意是未发生异常执行esle子句。发生异常但是不属于except指定的异常,也不会进入else子句。 这点和if else 有点区别

在try中使用finally子句,无论是否发生异常都会执行的代码

image

在try语句中捕获异常后,抛出发生的异常

使用raise抛出异常
image

执行
image

对比看下,未抛出异常的情况
image

执行
image

注意,抛出异常时,显示出了tracebak,未抛出时,是没有traceback信息的
抛出异常时,除了finally子句,异常之后的代码是不会执行的,未抛出时,则是会执行的

标签:内置,python,代码,except,try,执行,异常,捕获
From: https://www.cnblogs.com/MyRecords/p/17391878.html

相关文章

  • Python try...catch All In One
    Pythontry...catchAllInOnePython异常处理try...exceptwhileTrue:try:x=int(input("Pleaseenteranumber:"))breakexceptValueError:print("Oops!Thatwasnovalidnumber.Tryagain...")excep......
  • Python复制文件的9种方法
    以下是演示“如何在Python中复制文件”的九种方法。1.shutilcopyfile()方法2.shutilcopy()方法3.shutilcopyfileobj()方法4.shutilcopy2()方法5.ospopen方法6.os系统()方法7.Thread()方法8.子进程调用()方法9.子进程check_output()方法1.......
  • 第二节:编程语言与Python介绍
    一引子基于上一节所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。本章的主题是先带大家了解下编程语言,然后重点介绍Python这门编程语言二编程语言分类:2.1机器语言机器语言......
  • Why are Python strings immutable? 字符串是否可以改变
    实践1、pythons="abc"s+="34" #OK print(s)s[0]="k" # TypeError:'str'objectdoesnotsupportitemassignment   golang  s:="abc"  s+="456"  fmt.Println(s)  s[0]="......
  • python环境的安装与设置和oneforall的安装与使用
    下载python:https://www.python.org/downloads/windows/安装python如果不需要修改路径,下面两个√打开后,点击上面的installnow也可以可以选择修改安装路径下载OneForALL:在github上边下载安装OneForALL复制你安装OneForALL的路径,比如我的是C:Windows\OneForAll-master回到桌面,按win......
  • 使用Open3D进行PCD拟合平面的Python代码示例
    使用Open3D进行PCD拟合平面的Python代码示例 importopen3daso3dimportnumpyasnp#读取点云数据pcd=o3d.io.read_point_cloud("2023042501.pcd")#创建PCD图pcd_graph=o3d.geometry.PointCloudGraph(pcd)#选择要拟合的平面plane_cent......
  • Python协程asyncio
    在Python使用multiprocessing进行多线程和多进程操作 这篇文章中介绍了使用多线程的方式对一些I/O操作(文件读写、网络请求,这些操作不用等待其结束,在此期间可以做其他事情)进行加速。而本篇文章介绍的协程可以理解成“微线程”,不开辟其他线程,只在一个线程中执行,并且执行函数时......
  • Python OOP & Class private method All In One
    PythonOOP&ClassprivatemethodAllInOnePythonClassprivatemethoddemos代码缩进错误调用私有方法错误#!/usr/bin/python3#类定义classpeople:#定义基本属性name=''age=0#定义私有属性,私有属性在类外部无法直接进行访问_......
  • Python range function All In One
    PythonrangefunctionAllInOnerange函数函数语法range(stop)range(start,stop[,step])参数说明:start:计数从start开始。默认是从0开始。例如range(5)等价于range(0,5)stop:计数到stop结束,但不包括stop。例如:range(0,5)是[0,1,2,3,4]没有......
  • Python的基础核心知识
    编程语言和编程编程语言语言:人与人之间沟通的媒介编程语言:人与计算机沟通的语言编程程序员通过计算机能够读懂的语言把自己的思想和逻辑写下来的过程编程的初衷是更好的奴隶计算机计算机五大组成部分部1.控制器2.运算器3.存储器4.输出设备5.输入设备计算机三大核心硬......