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

Python学习心得异常处理

有些代码在操作的过程当中,如果不注意其所限定的条件,可能在输入函数值时引发一些程序的报错,这样为了让代码自己能做到抛除异常操作的情况,就得让代码具有排除异常的能力。下面的一些操作就使得代码具有该功能,处理异常的语法结构:

  一、try...except:

 try...except的语法结构:

try:
     可能会抛出异常的代码
except 异常类型:
     异常处理代码(报错后执行的代码)

 try...except结构的运用:

try:
    num1=int(input('请输入第一个整数:'))
    num2=int(input('请输入第二个整数:'))
    result=num1/num2
    print('两个整数相除的结果为:',result)
except ZeroDivisionError:
    print('除数为0')

这里涉及到一些术语,比如说:抛出异常以及捕获异常。抛出异常指的是程序在运行的过程中报出错误,将这个给抛出去,放到try当中。捕获异常指的是except语句的执行,当异常发生后,except会进行对异常的分析,然后反馈。

二、try...except...except:

 try...except...except的语法结构:

try:
    可能会抛出异常的代码
except 异常类型A:
    异常处理代码(报错后执行的代码)
except 异常类型B:
    异常处理代码(报错后执行的代码)
    

多个except结构是为了应对多个类型的异常操作。

注:except可以写多个,把异常范围最大的写在最后。

 try...except...except的语法结构的运用:

try:
    num1 = int(input('请输入第一个整数:'))
    num2 = int(input('请输入第二个整数:'))
    result = num1 / num2
    print('两个整数相除的结果为:', result)
except ZeroDivisionError:
    print('除数不为0')
except ValueError:
    print('不能将字符串转成整数')
except BaseException:
    print('未知异常')

三、try...except...else:

 try...except...else的结构为:

try:
    可能会抛出异常的代码
except 异常类型:
    异常处理代码(报错后执行的代码)
else:
    没有抛出异常要执行的代码

 try...except...else结构的运用:

try:
    num1 = int(input('请输入第一个整数:'))
    num2 = int(input('请输入第二个整数:'))
    result = num1 / num2
except ZeroDivisionError:
    print('除数不为0')
except ValueError:
    print('不能将字符串转成整数')
except BaseException:
    print('未知异常')
else:
    print('结果:',result)

四、try...except...else...finally:

 try...except...else...finally的结构为:

try:
    可能会抛出异常代码
except 异常类型:
    异常处理代码(报错后执行的代码)
else:
    没有抛出异常要执行的代码
finally:
    无论是否产生异常都要执行的代码

 注:finally是不管有异常还是没异常都得执行的代码。

 try...except...else...finally结构的运用:

try:
    num1 = int(input('请输入第一个整数:'))
    num2 = int(input('请输入第二个整数:'))
    result = num1 / num2
except ZeroDivisionError:
    print('除数不为0')
except ValueError:
    print('不能将字符串转成整数')
except BaseException:
    print('未知异常')
else:
    print('结果:',result)
finally:
    print('程序执行结束!')

相关文章:

  • MySQL 深分页速度慢的原因及优化方案
  • MWORKS Syslab(个人版)安装教程
  • CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类尺寸QSize)
  • 【前端】Vue组件库之Element: 一个现代化的 UI 组件库
  • 在Kubernetes上部署DeepSeek-R1进行高效AI推理
  • SpringBoot 核心总结图
  • Redis 回收进程工作流程详解
  • 【Python 学习 / 5】函数详解(定义、参数、作用域、lambda、内置函数)
  • Redis 简介
  • 基于ThinkPHP 5~8兼容的推荐算法类实现,
  • TikTok 多账号管理与自动化运营:矩阵系统功能全解析
  • 软件测试面试题精选33道,附答案+文档
  • Redis 启用自动内存碎片清理异常
  • 深化与细化:提示工程(Prompt Engineering)的进阶策略与实践指南2
  • 为AI聊天工具添加一个知识系统 之108 详细设计之49 相提并论的三者、三位一体Triad和圣灵倒三角
  • Android 10.0 移除wifi功能及相关菜单
  • 前端常见面试题-2025
  • 前端开发中关于虚拟列表的实现与应用优化
  • 若依集成WebSocket
  • 君亭酒店:2024年营业收入约6.76亿元, “酒店行业传统增长模式面临巨大挑战”
  • 俄罗斯延长非法滞留外国人限期离境时间至9月
  • “天链”继续上新!长三乙火箭成功发射天链二号05星
  • 在上海生活8年,13岁英国女孩把城市记忆写进歌里
  • 海南旅文局通报游客入住酒店港币被调包:成立调查组赴陵水调查
  • 怎样更加贴近中国消费者,运动品牌给出“本地化”选择