news 2026/6/11 20:07:27

异常处理-面向对象思想的了解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
异常处理-面向对象思想的了解

一. 异常处理

在代码的编写运行时,常常遇到错误后,代码针对错误报错并在错误出终止,为了能让代码‘一镜到底’,不因为某一功能的错误而让程序卡壳,通常可以在认为出错的地方用try-except包围起来

理解程序中的错误一般分为两种,编译错误,运行错误

异常处理是面向运行时错误的 指的是在程序的运行中代码如果出现了bug,那么它会终止后面的程序 这个时候就需要异常处理

try: # 可能出错的代码 pass except Exception as e: # 异常处理 pass else: # 无异常时执行 pass finally: # 无论是否有异常都会执行(常用于资源释放) pass

1.1 异常处理具体案例

# try:可能出现错误的代码块 try: num1 = int(input('请输入数1:')) num2 = int(input('请输入数2:')) count = num1 / num2 # 同时写多个except,属于异常处理的分级捕获 print(f'当前结果是:{int(count)}') # Exception:当前的父类异常一定要放在最末尾 except (ValueError,ZeroDivisionError ) as e: # 子异常 print(e) except Exception as e: # 异常的父类类型(捕获所有错误) print('其他异常') else: # 当程序没有出现仍和异常时,会执行代码块 print('没毛病') finally: # 应用场景:关闭数据连接,进程 线程 协程释放资源 print('释放')

1.2 异常常见的类型

  • ValueError: 值无效(如int('abc'))
  • ZeroDivisionError: 除以0的数学运算
  • KeyError: 字典中访问不存在的键
  • IndexError: 序列索引超出范围(如列表越界)
  • TypeError: 操作或函数传入不兼容的类型
  • ......

二. 面向对象的思维

2.1 面向对象与过程

什么是面向过程?

自顶向下,逐步细化!简而言之就是根据过程一步一步的往下写。
比如:如果某一个步骤功能的难度较大,可以将该步骤再次细化为若干个子步骤,以此类推,一直到结尾并得到我们想要的结果。

什么是面向对象?

将功能理解成实体,实体中有相对应的类型和属性
可以看做是一个一个的实体在发挥其各自的“功能”(能力)并在内部进行协调有序的调用过程!

2.1.1面向对象与面向过程二者的区别?

面向过程和面向对象的区别

  1. 都可以实现代码重用和模块化编程,面向对象的模块化更深,数据也更封闭和安全
  2. 面向对象的思维方式更加贴近现实生活,更容易解决⼤型的复杂的业务逻辑
  3. 从前期开发的角度来看,面向对象比面向过程要更复杂,但是从维护和扩展的⻆度来看,面向象要远比面向过程简单!
  4. 面向过程的代码执行效率比面向对象高

2.2类及类对象的简单使用

在Python中,采用类(class)来生产对象,用类来规定对象的属性和方法!也就是说,在Python
中,要想得到对象,必须先有类!

2.2.1 类的定义

具体语法结构如下

class 类名: # 属性 # 方法

案例

class QQ: def __init__(self,name,gender,age): # __init__: 构造方法(在类进行实例化的过程中,默认会调用此方法) self.name = name # 默认不写构造方法则会调用隐式构造 self.gender = gender # self:指的是当前实例对象 --->也可以将其理解为this指针 self.age = age # 构造方法:是一个特殊方法,在创建对象时调用,用于初始化对象属性 def bahavior(self): print(f'{self.name}要吃鱼了') def huashui(self): print(f'{self.name}要划水') def set(self,name): self.name = name
2.2.2 类对象的使用

类的实例化就是通过得到对象
类只是对象的一种规范,类本身基本上什么都做不了,必须利用类得到对象,这个过程就叫作类的实例化!

基本语法
对象名 = 类名()

在其他的编程语言中,类的实例化一般是通过new关键字实例化生成的,但是在Python中,我们不需要new关键字,只需要类名+()括号就代表类的实例。

具体案例

class QQ: def __init__(self,name,gender,age): # __init__: 构造方法(在类进行实例化的过程中,默认会调用此方法) self.name = name # 默认不写构造方法则会调用隐式构造 self.gender = gender # self:指的是当前实例对象 --->也可以将其理解为this指针 self.age = age # 构造方法:是一个特殊方法,在创建对象时调用,用于初始化对象属性 def bahavior(self): print(f'{self.name}要吃鱼了') def huashui(self): print(f'{self.name}要划水') def set(self,name): self.name = name qq = QQ('小牟','雄',5) # 实例化 qq.huashui() # 使用方法 qq.bahavior() print(qq.name) qq.set('小忙') print(qq.name)

三. 总结

3.1 异常处理基本概念

  • 目的:防止程序因错误而中断执行
  • 适用场景:运行时错误处理
  • 核心思想:让代码能够"一镜到底"继续执行

3.2 常见异常类型

  • ValueError:值无效转换
  • ZeroDivisionError:除零错误
  • KeyError:字典键不存在
  • IndexError:序列索引越界
  • TypeError:类型不匹配

3.3 类的定义与使用

  • 类定义:使用 class 关键字定义模板
  • 构造方法:init 方法用于初始化对象属性
  • 实例化:通过 类名() 创建对象
  • self参数:指向当前实例对象

3.4 核心要点

  • 类是对象的规范,对象是类的实例
  • 面向对象更贴近现实逻辑,适合复杂业务场景
  • 异常处理与面向对象结合使用,提高程序健壮性
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 16:41:18

企业微信自动化:精准推送技术揭秘

​ QiWe开放平台 个人名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生态…

作者头像 李华
网站建设 2026/6/1 13:36:29

JMeter分布式压测实施的核心技术要点

01 背景 在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持4000并发),单台压测机的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能 02 原理 Jmeter分布式测试时,选择其中一台作为调度…

作者头像 李华
网站建设 2026/6/2 17:34:22

20.赛灵思FPGA型号总结

赛灵思的FPGA分两种,一种是集成处理器的,一种未集成。未集成处理器的FPGA型号:集成处理器的FPGA型号:对于多核异构的方案,如果低成本,使用ZYNQ7000系列,高性能,使用MPSOC系列。如果需…

作者头像 李华
网站建设 2026/6/10 9:32:56

2018年山东CSP-X复赛真题解析

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

作者头像 李华
网站建设 2026/6/9 21:09:16

性能测试面试生存指南:从青铜到王者的通关秘籍

家人们!谁懂啊!!当 HR 通知你性能测试面试时,是不是感觉像被丢进了 “性能高压锅”,压力直接拉满?别慌!这份实用的面试准备秘籍,保你从面试小白逆袭成 “人间清醒” 的性能测试大神&…

作者头像 李华