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笔记

    • 基础知识

    • 类与面向对象

    • 并发编程

    • Web编程

    • 模块笔记

    • 其他

      • 类型提示
      • 异常处理
        • 异常处理
        • raise输出异常
      • 公共基础
  • C笔记

  • C++笔记

  • Arduino笔记

  • 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 异常类型('异常信息')
#异常处理
类型提示
公共基础

← 类型提示 公共基础→

最近更新
01
二〇二五年四月十七日随笔
04-17
02
二〇二五年四月十六日随笔
04-16
03
二〇二五年四月九日随笔
04-09
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Hoshinozora | MIT License
湘ICP备2022022820号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式