石药网站环保产品企业网站建设
- 作者: 五速梦信息网
- 时间: 2026年03月21日 08:45
当前位置: 首页 > news >正文
石药网站,环保产品企业网站建设,公司官网如何被百度收录,鼓楼区建设房产和交通局网站异常是什么#xff1f; 软件程序在运行过程中#xff0c;非常可能遇到刚刚提到的这些问题#xff0c;我们称之为异常#xff0c;英文是Exception#xff0c;意思是例外。遇到这些例外情况#xff0c;或者交异常#xff0c;我们怎么让写的程序做出合理的处理#xff0c…异常是什么 软件程序在运行过程中非常可能遇到刚刚提到的这些问题我们称之为异常英文是Exception意思是例外。遇到这些例外情况或者交异常我们怎么让写的程序做出合理的处理安全的退出而不至于程序崩溃呢 工作中程序遇到的情况不可能完美。比如程序要打开某个文件这个文件肯能不存在或者文件格式不对程序在运行着但是内存或者硬盘可能满了等等 异常的本质 当程序出现异常程序安全的退出、处理完后继续执行的机制 python中引入了很多用来描述和处理异常的类称为异常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法下面较为完整的展示了python中内建异常类的继承层次 我们处理一下遇到的第一个异常
测试简单的0不能做除数
a 3 / 0 python中一切都是对象异常也采用对象的方式来处理。处理过程 抛出异常在执行一个方法时如果发生异常则这个方法生成代表该异常的一个对象停止当前执行路径并把异常对象提交给解释器捕获异常解释器得到该异常后寻找相应的代码处理该异常 异常的解决思路 解决异常问题的态度 学习完异常相关知识点知识开始对异常有些认识不以为着你会调试任何异常异常调制需要大量的经验作为基础。因此大家不要再次停留继续往后学习。碰到每个异常都要化心思去解决而不要动不动张口问人。通过自己的女里无法解决再去找老师同学帮组解决。 解决每一个遇到的异常建议大家遵循如下三点 不慌张细看信息定义错误。看清楚报的错误信息并定位发生错误的地方百度并查看十个相关帖子。将异常类信息极性百度至少查看十个以上的相关帖子以上两步仍然无法解决找老师和同学协助解决 异常的解决的关键定位 def a():print(run in a() start!)num 1 / 0print(run in a() end!)def b():print(run in b() start!)a()print(run in b() end!)def c():print(run in c() start!)b()print(run in c() end!)print(step1) c() print(step2) 当发生异常时解释器会报相关的错误信息并会在控制台打印相关错误信息。我们只需要按照从上到下的顺序即可追溯trackback错误发生的过程最终定位引起错误的哪一行代码。 try和except结构 try…一个except结构 try: 被监控的可能引发异常的语句块 except BaseException[as e]: 异常处理语句块 try:print(step1)a 3 / 0print(step2)except BaseException as e:print(step3)print(e) print(step4) print(step5) try块包含着可能引发异常的代码except块则用来捕捉和处理发生的异常执行的时候如果try块没有引发异常则跳过except块继续执行后续代码执行的时候如果try块中发生了一场则跳过try块中的后续代码跳到相应的except块中处理异常异常处理完后继续执行后续代码。 while True:try:x int(input(请输入一个数字:))print(您输入的数字是, x)if x 88:print(退出程序)breakexcept BaseException as e:print(异常输入的不是数字)print(e) try…多个except结构 上面的结构可以捕获所有的异常工作中也很常见。但是从经典理论考虑一般建议尽量捕获可能出现的多个异常按照先子类后父类的顺序并且针对性的写出异常处理代码为了避免遗漏可能出现的异常可能在最后增加BaseException。结构如下 try: 被监控的、可能引发异常的语句块 except Exception1: 处理Exception1的语句块 except Exception2: 处理Exception2的语句块 […] except BaseException: 处理可能遗漏的异常的语句块 try:ainput(请输入被除数)binput(请输入除数)cfloat(a)/float(b)print©except ZeroDivisionError:print(异常除数不能为0) except TypeError:print(异常除数和被除数都应该为数值类型) except BaseException as e:print(e)print(type(e)) try…except…else结构 try…except…else结构增加了else块。如果try块中没有抛出异常则执行else块。如果try块中抛出异常则执行except块不执行else块 try:a input(请输入被除数)b input(请输入除数)c float(a) / float(b) except BaseException as e:print(e) else:print(除的结果是, c)try…except…finally结构 try…except…finally结构中finally块无论是否发生异常都会被执行通常用来释放try块中申请的资源。 try:a input(请输入被除数)b input(请输入除数)c float(a) / float(b) except BaseException as e:print(e) else:print(除的结果是, c) finally:print(我是finally语句无论是否发生异常我都会被执行) print(程序执行结束) a只有当捕捉到才会实例成对象可以尝试打印print(a)会发现它的打印结果是一串字符串所以一定是使用了str的魔术方法所以想要按照各个错误类型去执行就要通过a.str()的方法实现执行如下图 try:# f open(a.txt, r)f open(b.txt, r)content f.read()print(content) except BaseException as e:print(e)print(type(e)) finally:print(关闭文件)try:f.close()except BaseException as a:if a.str()name f is not defined:print(a 没有被定义成功不用关闭)print(继续执行其他代码) print(程序结束) 常见异常汇总 python中的异常都是派生自BaseException类本节我们测试和列出常见的一些异常方便初学者掌握。 SyntaxError语法错误 int a 3 ^ SyntaxError: invalid syntax NameError尝试访问一个没有申请的变量 print(a) NameError: name a is not defined ZeroDivisionError除数为0错误零除错误 a3/0 ZeroDivisionError: division by zero ValueError数值错误 afloat(laogao) ValueError: could not convert string to float: laogao TypeError类型错误 a123abc TypeError: unsupported operand type(s) for : int and str AttributeError访问对象不存在的属性 a100 a.sayhi() AttributeError: int object has no attribute sayhi IndexError索引越界异常 a[4,5,6] a[10] IndexError: list index out of range KeyError字典的关键字不存在 a{name:laogao,age:18} a[salary] KeyError: salary with上下文管理 finally块由于是否发生异常都会执行通常我们释放资源的代码。其实我们可以通过 with上下文管理更方便的视线释放资源的操作。 with上下文管理的语法结构如下 with context_expr [ as var]: 语句块 with上下文管理可以自动管理资源在with代码块执行完毕后自动还原进入改代码之前的现场或上下文。不论何种原因跳出with块不论是否有异常总能保证资源正常释放。极大地简化了工作怎文件操作、网络通信相关的场合非常常用。 with open(a.txt) as f:# contentf.readline() 打印一行信息# print(content)#打印多行信息使用for循环for line in f:print(line,end) traceback模块和生成异常日志 import tracebacktry:print(step1)num 1 / 0 except:with open(c.log, a) as f: # appendtraceback.print_exc(filef)print(打印成功) 自定义异常类 程序开发中有时候我们也需要自己定义异常类。自定义异常类一般都是运行时异常通常继承Exception或其子类即可。命名一般以Error、Exception为后缀 自定义异常有raise语句主动抛出。
自定义异常类
class AgeError(Exception):def init(self, errorInfo):Exception.init(self)self.errorInfo errorInfodef str(self):return str(self.errorInfo) ,年龄错误应该在1-150之间if name main:age int(input(请输入一个年龄))if ((age 1) or (age 150)):raise AgeError(age)else:print(正常的年龄, age) Pycharm开发环境的调试debug 进行调试的核心是设置断点。程序执行到断点时暂时挂起停止执行。就像看视频按下停止一样可以详细观看停止处的每一个细节。 断点 程序运行到此处暂时挂起停止执行。我们可以详细在此时观察程序的运行情况方便做出进一步的判断。 设置断点 在行号后面单击即可增加断点在断点上再单击即可取消断点 进入调试视图 我们通过如下三种方式都可以进入调试视图 单击工具栏上的按钮 右键单击编辑区点击debug‘模块名’ 快捷键shiftF9 进入调试视图后布局如下 左侧为“浏览帧” 调试器流出断点处当前线程正在运行的方法每个方法对应一个“栈帧”。最上面的是当前断点所处的方法。变量观察区调试器列出了断点处所在的方法相关的变量值。我们可以通过它查看变量的值的变化。 调试操作区 如果不管一个方法如何运行只想看结果想直接跳过就点击这个按钮Step Over或者是按F8 此时断点还在a方法中运行如果想进入b方法就要按下面画圈的按钮或者按F7就能进入函数查看b函数当中的变量。
- 上一篇: 石头科技 网站开发wordpress建站教程网
- 下一篇: 石油网站编辑怎么做苏州知名网站建设设计
相关文章
-
石头科技 网站开发wordpress建站教程网
石头科技 网站开发wordpress建站教程网
- 技术栈
- 2026年03月21日
-
石狮做网站网站建设需注意点
石狮做网站网站建设需注意点
- 技术栈
- 2026年03月21日
-
石狮网站建设联系电话社交网站备案
石狮网站建设联系电话社交网站备案
- 技术栈
- 2026年03月21日
-
石油网站编辑怎么做苏州知名网站建设设计
石油网站编辑怎么做苏州知名网站建设设计
- 技术栈
- 2026年03月21日
-
时代空间网站php在线做网站
时代空间网站php在线做网站
- 技术栈
- 2026年03月21日
-
时代强个人网站网店营销策略有哪些
时代强个人网站网店营销策略有哪些
- 技术栈
- 2026年03月21日
