当前位置: 首页 > 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
  • 河南博物院:警惕非官方网络平台 “买讲解保进馆” 等虚假信息
  • 美国防部监察机构扩大“群聊门”事件调查范围
  • 国务院任免国家工作人员:颜清辉任人社部副部长
  • 街区党支部书记们亮出治理实招,解锁“善治街区二十法”
  • 铁路上海站今日预计发送旅客65.8万人次,同比增长超16%
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结