ThankNeko's Blog ThankNeko's Blog
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)

Hoshinozora

尽人事,听天命。
首页
  • 操作系统

    • Linux基础
    • Linux服务
    • WindowsServer笔记
    • Ansible笔记
    • Shell笔记
  • 容器服务

    • Docker笔记
    • Kubernetes笔记
    • Git笔记
  • 数据库服务

    • MySQL笔记
    • ELK笔记
    • Redis笔记
  • 监控服务

    • Zabbix笔记
  • Web服务

    • Nginx笔记
    • Tomcat笔记
  • 数据处理

    • Kettle笔记
  • Python笔记
  • Bootstrap笔记
  • C笔记
  • C++笔记
  • Arduino笔记
  • 分类
  • 标签
  • 归档
  • 随笔
  • 关于
GitHub (opens new window)
  • Python笔记

    • 基础知识

      • 常见规范与运行方式
      • 变量与垃圾回收机制
      • 输入与格式化输出
      • 运算符
      • 流程控制语句
      • 浅拷贝和深拷贝
      • 常用数据类型与分类
      • 数据类型方法
      • 字符编码
      • 文件操作
      • 函数与参数
      • 命名空间与作用域
      • 闭包函数与装饰器
      • 迭代器与生成器
      • 三元表达式与生成式
      • 函数递归
      • 面向过程式和函数式编程
      • 模块与包
      • 程序设计目录参考
      • 常用内置模块或函数
      • 序列化和猴子补丁
      • 异常处理
        • 异常处理
        • raise输出异常
      • 类型提示
      • 公共基础
      • 面向对象与类
      • 封装与继承
      • 反射与元类
    • 并发编程

    • 爬虫笔记

    • 模块笔记

    • 后端笔记

  • C笔记

  • C++笔记

  • Arduino笔记

  • Web笔记

  • Dev
  • Python笔记
  • 基础知识
Hoshinozora
2023-02-26
目录

异常处理

# 异常处理

# 为何需要处理异常

  • 错误发生的条件是无法预知的
    • 且程序崩溃后系统虽然会自动回收资源,但可能不会立即回收,这会造成一定时间的资源泄露
  • 为了增强程序的健壮性,即便是程序运行过程中出错,也不要终止程序
  • 而是捕捉异常并处理,将出错信息记录到日志内

# 异常处理的三个特征

  • 异常的追踪信息、异常的类型、异常的内容

# 异常处理语法

try:
    # 有可能抛出异常的代码块
    ... ...
except 异常类型 as e:  # 将异常信息别名给e
    # 发生异常时执行的代码块
except Exception as e:
    # 发生异常时执行的代码块
else:
    # 如果没有检测到异常发生,则会执行该代码块
finally:
    # 无论是否检测到异常发生,都会执行该代码块
    # 一般用于写被检测代码块的资源回收代码
1
2
3
4
5
6
7
8
9
10
11
12
  • except 可以有0或n个,用于处理不同的异常类型
  • except Exception 表示捕获所有异常
  • else 可以有0个或者1个
  • finally 可以有0个或者1个

# 注意

  • try下的代码块的某行发生异常后,就会抛出异常,抛出异常后,try内的该行后面的代码将不会被执行,而是直接进行相应的异常处理

# raise输出异常

# 自定义报异常

raise 异常类型("异常信息")

# Assert异常

Assert异常语句会在条件不成立时抛出异常,另外还可以额外指定抛出调试信息。

assert 条件, "异常信息"

#异常处理
序列化和猴子补丁
类型提示

← 序列化和猴子补丁 类型提示→

最近更新
01
Vue路由
12-09
02
FastAPI实现用户管理
11-23
03
Tortoise ORM
11-23
更多文章>
Theme by Vdoing | Copyright © 2022-2026 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式