不需要在每个可能出错的地方捕获,只要在合适的层次去捕获错误就可以

#语法格式:
try:可能出错的代码块
except:出错后执行的代码块
else:没有出错的代码块
finally:不管有没有错都执行的代码块

try-except

  • except在捕获错误类型的时候,主要根据具体的错误类型来捕获的
  • 用一个try可以捕获多个不同类型的异常

code 1:

try:print(b) #这里是要捕获的代码except NameError: #指定错误类型为NameRrror#捕捉到错误会在这里执行print("NameError")

code 2:

try:print(b) #这里是要捕获的代码except NameError as msg:#捕捉到错误会在这里执行print(msg)

code 3:

try:li=[1,2,54,78] #这里是要捕获的代码print(li[10])a=10/0
except NameError as msg:#捕捉到错误会在这里执行print(msg)except IndexError as msg:print(msg)
except ZeroDivisionError as msg:print(msg)

code 4:

try:a=10/0
except Exception as msg:print(msg)

code 5:

def A(s):return 10/int(s)
def B(s):return A(s)*2
def main():try:B("0")except Exception as msg:print(msg)main()
#不需要在每个可能出错的地方捕获,只要在合适的层次去捕获错误就可以

try-except-else

try:print (aa)
except Exception as msg:print(msg)
else:print("当try里面没有错误。else才会执行")

try-except-else-finally

try:print (aa)
except Exception as msg:print(msg)
else:print("当try里面没有错误。else才会执行")
finally:print("不过有没有错都执行")

自定义异常

  • 自定义异常,都要直接或者间接的继承 ErrorException
  • 由开发者主动抛出自定义异常,在python中使用 raise关键字
class ToolsMyException(Exception):def __init__(self, leng):self.leng = lengdef __str__(self):return "您输入的的姓名长度是"+str(self.leng)+"已经超过长度"def name_Test():name=input("请输入姓名")try:if len(name)>5:raise ToolsMyException(len(name))else:print(name)except ToolsMyException as result:print(result)finally:print("执行完毕-------")name_Test()

异常处理try_except-else-finally相关推荐

  1. Python的异常处理机制 -- (转)

    当你的程序中出现异常情况时就需要异常处理.比如当你打开一个不存在的文件时.当你的程序中有一些无效的语句时,Python会提示你有错误存在. 下面是一个拼写错误的例子,print写成了Print.Pyt ...

  2. python print error 空_python笔记37:10分钟掌握异常处理,再也不担心程序挂了

    主要内容: 小目标:异常处理 主要内容:错误与异常,try_except语句 对于撸代码的程序员来说,程序运行中出现问题是常见的现象: 实际学习与工作中,我们会花很大的精力去解决各种问题: 1. 程序 ...

  3. python异常处理_Python学习点滴04 - 学会异常处理(2)

    前言 我们在开发Python程序时经常会遇到一些错误(语法错误和异常),尤其是程序代码发生异常(Exceptions)时,如果不能及时捕获异常和有效处理异常,则程序运行会被终止,有可能会造成相应的后果 ...

  4. pythontrycatch所有异常状态_python 一篇搞定所有的异常处理

    异常处理 在项目开发中,异常处理是不可或缺的.异常处理帮助人们debug,通过更加丰富的信息,让人们更容易找到bug的所在.异常处理还可以提高程序的容错性. 我们之前在讲循环对象的时候,曾提到一个St ...

  5. Go语言的错误异常处理机制及其应用

    一.背景 在日常编写golang程序或阅读别人的golang代码时,我们总会看到如下的一堆代码块: xx, err = func(xx) if err != nil {//do sth. to tac ...

  6. SpringBoot (二) :全局异常处理设置

    说在前面 在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有 ...

  7. 2021年大数据常用语言Scala(三十四):scala高级用法 异常处理

    目录 异常处理 捕获异常 抛出异常 异常处理 Scala中 无需在方法上声明异常 来看看下面一段代码. def main(args: Array[String]): Unit = {val i = 1 ...

  8. Java基础(七)--Exception异常处理

    发现错误的理想时机是程序运行之前(编译期),然后不太现实,很多异常无法被发现(特别是业务上的数据),需要在运行时解决. 错误恢复机制保证代码健壮性的方式,异常处理在程序中很常见,也是必须的,必须考虑有 ...

  9. 零基础学习python_异常处理(32-33课)

    我们写完python执行的时候是不是经常会遇到报错,而且报错都是大片红字,这样给别人的感受就是你写的程序怎么老是出问题啊,这样我们还咋么混下去呢?于是乎,就有了异常处理的东东. python的try语 ...

  10. Spring Security 实战干货:自定义异常处理

    Spring Security 实战干货:自定义异常处理 转自:https://www.cnblogs.com/felordcn/p/12142514.html 文章目录 1. 前言 2. Sprin ...

最新文章

  1. 解读 | 2019 年 10 篇计算机视觉精选论文
  2. 优先队列的数组实现(有序)
  3. 详解 lsusb命令
  4. silverlight 跨域socket
  5. linux命令行翻页
  6. 【设计模式从青铜到王者】第八篇:创建型模式之建造者模式(BuilderPattern)
  7. android英文菜单,安卓recovery菜单中英文对照
  8. java integer最大值_java int型最大值/最小值,最大值+1,最小值-1
  9. 「Go工具箱」web中想做到cookie值安全?securecookie库的使用和实现原理
  10. docker容器获取宿主机IP
  11. 全球域名商域名增量Top15:51DNS排名降至第十二
  12. python使用xlwings库操作Excel常见操作
  13. 稳压二极管TVS二极管
  14. 从与迪思杰签约 看浪潮主机生态如何布局?
  15. python操作手机app超详细步骤
  16. NBS BioCommand PLUS
  17. c调用python第三方包_cbillington_Python包维护者_第三方库作者_PyPI项目模块Package - Python中文网...
  18. bert 环境搭建之PytorchTransformer 安装
  19. 26个英语单词起源(百度百科+巴士英语)
  20. VSCODE+EIDE开发STM32

热门文章

  1. 【记录读论文时遇到的一些算法1】——MCMC sampling Gibbs sampling
  2. linux 搜索文本手机号,Linux三剑客学习之提取手机号码
  3. Ubuntu18.04安装后要做的事
  4. Windows AppData介绍
  5. Open FIFO for write returns “No such device or address“
  6. 蓄电池放电容量测试方法——TFN DC-E60150蓄电池放电容量测试仪
  7. [转]多媒体封装格式详解---MP4
  8. L3-1 千手观音【拓扑排序】
  9. webrtc在服务器端通信协议,一种基于WebRTC通信的Web协议WebTorrent
  10. Dweb:使用WebRTC / WebTorrent构建弹性Web