当前位置: 首页 > news >正文

python基础语法八-异常

书接上回:

python基础语法一-基本数据类型

python基础语法二-多维数据类型

python基础语法三-类

python基础语法四-数据可视化

python基础语法五-函数

python基础语法六-正则匹配

python基础语法七-openpyxl操作excel

1. 异常简介

(1)异常:遇到异常可以继续正常执行,不会终止

(2)python中的异常继承层次

      BaseException

           |

-------------------------------------------------------------------------------

|                                          |                 |                            |

KeyBoardInterrupt     Exception   SystemExit      GeneratorExit

                                           |

                           NameError/ValueError等

2. try…except结构

(1)格式:

try:

          可能引发异常的语句块

except[ BaseException [as e]]:  # e:异常对象

          异常处理语句块

2

import traceback

try:

    print('1')

    a=3/0

    print('2') # skip

except:

    print('error')

3. try 多个except结构

(1)格式:

try:

           可能引发异常的语句块

except Exception1:

           异常1处理语句块

except Exception2:

           异常2处理语句块

       ...

except BaseException [as e]:

           异常处理语句块

3

try:

     a = float(input('please input the dividend:'))

     b = float(input('please input the divisor:'))

     c = a/b

     print('%d / %d = %d' % (a, b, c))

except ZeroDivisionError:

     print('divisor shouldn\'t be zero')

except ValueError:

     print('string shouldn\'t be input')

 except BaseException as e:

     print(e)

4. try...except(可以多个)...else结构

(1)try里是可能有异常的语句块,如果有异常则进入except,没有异常则进入else

4

 try:

     a = float(input('please input the dividend:'))

     b = float(input('please input the divisor:'))

     c = a/b

 except ZeroDivisionError:

     print('divisor shouldn\'t be zero')

 except ValueError:

     print('string shouldn\'t be input')

 except BaseException as e:

     print(e)

 else:

     print('%d / %d = %d' % (a, b, c))

5. try...except...finally结构

(1)说明:try里是可能有异常的语句块,无论是否有异常,一定会进入finally。

(2)典型应用:处理文件时,最后一定要关闭该文件

5

try:

     a = float(input('please input the dividend:'))

     b = float(input('please input the divisor:'))

     c = a/b

 except ZeroDivisionError:

     print('divisor shouldn\'t be zero')

 except ValueError:

     print('string shouldn\'t be input')

 except BaseException as e:

     print(e)

 else:

     print('%d / %d = %d' % (a, b, c))

 finally:

     print('end !')

6. 常见异常

(1)ZeroDivisionError :除0异常

(2)ValueError :字符串不能当做数字做运算

(2)NameError :访问一个没有声明的变量

(3)SyntaxError : 语法异常

(4)IndexError : 数组越界

(5)TypeError : 类型异常, 例如数字和字符串不能相加

(6)KeyError : 字典没有这个key

(7)AttributeError :对象不存在这个属性

7. traceback

(1)作用:打印详细的错误信息,并且可以把错误信息存储到日志文件中

7

try:

     a = 1/0

 except BaseException as e:

     with open(r"C:\Users\qinglan.he\Desktop\traceback.txt","a") as f:

         traceback.print_exc(file=f)

8. 自定义异常

8

class MyError(Exception): # 继承Exception

    def __init__(self, age):

        Exception.__init__(self)

        self.age = age

    def print_error(self):

        print('age arror! age shouldn\'t be ', self.age)

if __name__ == '__main__':

    age = 200

    if age > 150:

        my_error = MyError(age)

        my_error.print_error()

http://www.lryc.cn/news/432621.html

相关文章:

  • 【堆的应用--C语言版】
  • 【微信小程序】搭建项目步骤 + 引入Tdesign UI
  • android系统源码12 修改默认桌面壁纸--SRO方式
  • Echarts可视化
  • 验证linux gpu是否可用
  • JavaScript( 简介)
  • Linux中的编译器gcc/g++
  • RK3568安装部署Docker容器
  • Ubuntu 常用指令和作用解析
  • 2024国赛数学建模C题完整论文:农作物的种植策略
  • 【语音告警】博灵智能语音报警灯JavaScript循环播报场景实例-语音报警灯|声光报警器|网络信号灯
  • 指针与函数(三)
  • 锐捷网络2025届校园招聘正式启动,【NTA6dni】!
  • 共享内存喜欢沙县小吃
  • 五、Build构建配置:jar包换名、自行定义编译规则
  • Html、Css3动画效果
  • 【AIStarter:AI绘画、设计、对话】零基础入门:Llama 3.1 + 千问2快速部署
  • 多机编队—(1)ubuntu 配置Fast_Planner
  • 【数学建模经验贴】国赛拿到赛题后,该如何选题?
  • 如何快速融入大学课堂
  • el-table行编辑
  • OpenSSL Windows编译
  • 优化LabVIEW中TCP通信速度的方法
  • 【视频讲解】Python贝叶斯卷积神经网络分类胸部X光图像数据集实例
  • src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录
  • 移动端视频编辑SDK解决方案,AI语音识别添加字幕
  • WIN11 ESP32 IDF + VSCODE 环境搭建[教程向]
  • Gemini AI 与 ChatGPT:哪个更适合为我策划婚礼?
  • log4j 同一线程隔离classloader下MDC信息不同问题解决 ThreadLocal问题分析
  • 【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统