0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python中的异常机制(一)

麦辣鸡腿堡 来源:python都知道 作者:了不起 2023-05-11 18:17 次阅读

前言

哈喽, 大家好, 我是了不起!

欢迎大家来观看了不起的冒险之旅. 为了方便起见, 文中以小知为名. 讲述了不起在Python异世界的冒险之旅.

白天冒险, 晚上学习. 小知可是身体和心理没有一刻不在路上. 在今夜首先了解什么是异常: 软件程序在运行过程中,可能会遇到能使其不能正常运行的问题,我们称之为异常,英文是:Exception . 然后, 我们会了解捕获异常的四种方式


一、异常是什么


程序在运行过程中发生的意外情况,称为异常, 程序运行时一旦出现了异常,将会导致程序立即终止,异常之后的代码将无法继续执行,所以需要对异常进行处理

异常机制本质

  • 当程序出现异常,程序安全的退出、处理完后继续执行的机制

python中,引进了很多用来描述和处理异常的类,称为异常类. 异常类定义中包含了该类异常的信息和对异常进行处理的方法.下面较为完整的展示了python中内建异常类的继承层次:

pYYBAGRcvAeAQvtzAADTUrtMZEI650.png

解决思路

异常解决的关键:定位当发生异常时,解释器会报相关的错误信息,并会在控制台打印出相关错误信息. 我们只需按照从上到下的顺序即可追溯(Trackback)错误发生的过程,最终定位引起错误的哪一行代码.

实操代码

#测试简单的0不能做除数异常

#因为如果假设成立,则说明3/0=0=>可以推导0*0=3,因为结果不成立,因此假设不成立

#a=3/0

defa():

print("runina()start!")

num=1/0

print("runina()end!")

defb():

print("runinb()start!")

a()

print("runinb()end!")

defc():

print("runinc()start!")

b()

print("runinc()end!")

print("step1")

c()

print("step2")

结果输出

从打印输出结果来看, 最底层的方法(eg: a())出错之后, 会在上层调用的方法位置处抛出异常. 因为错误信息以栈的形式输出, 因此最顶层的调用因为先打印, 所以会先被我们看到. 因此对底层/最有用的信息一般位于最下面.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 程序
    +关注

    关注

    114

    文章

    3673

    浏览量

    79860
  • python
    +关注

    关注

    53

    文章

    4701

    浏览量

    83703
收藏 人收藏

    评论

    相关推荐

    请问SYS/BIOS中有异常机制吗?用户可以自己设置异常处理函数吗?

    本帖最后由 只耳朵怪 于 2018-6-20 10:53 编辑 请问SYS/BIOS中有异常机制吗?用户可以自己设置异常处理函数吗?目前开发用的C6678+SYS/BIOS。
    发表于 06-20 01:22

    FEM模拟python异常

    1148,在genericEmdsCall引发异常(文本) 以上来自于谷歌翻译 以下为原文Hello i gotthe following Python error message when
    发表于 02-14 15:14

    10年Python功力,总结了10个开发技巧,非常实用

    happened如果在异常处理程序或 finally 块引发异常,默认情况下,异常机制会隐式工作会将先前的
    发表于 08-26 11:58

    如何使用Python检测电动机异常情况

    该项目演示如何使用 Python 训练两种不同的机器学习模型来检测电动机异常情况。 第个模型依赖于马哈拉诺比斯距离的经典机器学习技术。 第二个模型是使用 TensorFlow 和
    发表于 09-08 08:14

    python常见异常类型

    python常见异常类型在程序运行过程,总会遇到各种各样的问题和错误。有些错误是我们编写代码时自己造成的,比如语法错误、调用错误,甚至逻辑错误。下面这个例子,在输入 if 后输入回车了,没有按照
    发表于 03-04 16:59

    python如何主动抛出异常和捕获异常

    关键字抛出。在 Python 是使用 raise 关键字来抛出异常的,比如在下面这个函数,如果不存在目标文件,则会抛出个 Excep
    发表于 03-04 17:10

    Cortex-M3的异常处理机制分析

    Cortex-M3的异常处理机制分析  详细阐述CortexM3异常的分类、优先级、进入和退出,以及在CortexM3异常处理机制
    发表于 03-29 15:07 1872次阅读
    Cortex-M3的<b class='flag-5'>异常</b>处理<b class='flag-5'>机制</b>分析

    C++异常机制探讨

    C++的异常机制为我们提供了更好的解决方法。异常处理的基本思想是:当出现错误时抛出一个异常,希望它的调用者能捕获并处理这个异常
    发表于 11-23 11:04 3379次阅读
    C++<b class='flag-5'>异常</b><b class='flag-5'>机制</b>探讨

    基于Python 异常的介绍以及异常处理的方法解析

    异常处理在任何一门编程语言里都是值得关注的一个话题,良好的异常处理可以让你的程序更加健壮,清晰的错误信息更能帮助你快速修复问题。在Python中,和不分高级语言一样,使用了try/except/finally语句块来处理
    的头像 发表于 01-31 14:20 6104次阅读
    基于<b class='flag-5'>Python</b> <b class='flag-5'>异常</b>的介绍以及<b class='flag-5'>异常</b>处理的方法解析

    基于Greenshield模型的异常节点检测机制

    面向车辆自组网的安全通信问题,提出一种基于Greenshield模型的异常节点检测机制。结合车辆自组网的特点,构造Greenshield模型,计算车辆速度、车辆密度和车流量参数。在此基础上依据车辆
    发表于 03-29 09:54 0次下载

    python如何捕获异常和主动抛出异常

    python如何主动抛出异常和捕获异常 1. 如何抛出异常异常的产生有两种来源: 一种是程序自动抛出,比如 1/0 会自动抛出 Zero
    的头像 发表于 03-04 17:09 9349次阅读

    Python-模块、包、异常

    * 程序运行时,如果Python 解释器遇到了错误,会停止程序运行,并且提示错误信息,**这就是异常**,* 程序停止执行并提示错误信息的动作,称为 **抛出异常**
    的头像 发表于 02-16 15:40 572次阅读
    <b class='flag-5'>Python</b>-模块、包、<b class='flag-5'>异常</b>

    C++程序异常处理机制是什么

    那么C++设计了一套异常处理机制,一方面能够使得异常处理和正常运行代码进行分离,使得程序更加模块化;另一方面,C++的异常处理可以不需要异常
    的头像 发表于 02-21 10:37 649次阅读
    C++程序<b class='flag-5'>异常</b>处理<b class='flag-5'>机制</b>是什么

    Python中的异常机制(二)

    二、try和except结构 try...一个except结构 这种结构是最常见, 也是最常用的结构 语法结构 try:  被监控的可能引发异常的语句块 except  BaseException
    的头像 发表于 05-11 18:20 785次阅读

    arm异常响应和异常返回机制是什么样子的?

    arm异常响应和异常返回机制是什么样子的?  ARM是一种RISC指令集架构,广泛用于无线电视、移动电话、嵌入式系统等领域。ARM中异常响应和异常
    的头像 发表于 10-19 16:36 693次阅读