常见异常举例

  1. """ 一些异常举例:"""
  2.  
  3. '''模块不存在 ModuleNotFoundError: No module named 'data' '''
  4. #import data1
  5. '''索引越界 IndexError: list index out of range '''
  6. li = [1,2]
  7. #li[3]
  8. '''key不存在 KeyError: 'a' '''
  9. dict1 = {}
  10. #dict1['a']
  11. ''' NameError: name 'a' is not defined '''
  12. #a #未定义的变量
  13. '''缩进错误 IndentationError: expected an indented block '''
  14. # if 1:
  15. # return True #缩进错误
  16. '''语法错误 SyntaxError: invalid syntax '''
  17. #def fund x: return x
  18. ''' 类型错误 TypeError: can only concatenate str (not "int") to str '''
  19. #'a' + 2
  20. ''' 除数为0 ZeroDivisionError: division by zero'''
  21. #2/0
  22. ''' 递归错误 未设置跳出条件 RecursionError: maximum recursion depth exceeded '''
  23. # def f(x):
  24. # return f(x)
  25. # f(1)

异常捕获 try except finally

  1. """异常捕获
  2. try(可能发生异常的语句)
  3. except(发生异常后处理)
  4. else(没有发生异常后执行的语句)
  5. finally(不管有无异常都要继续执行的语句)
  6. 不捕获,发生异常后后程序会中断执行。捕获异常,可根据异常进行处理
  7. """
  1. #捕获一种特定异常
  2. try:
  3. x = 10/0
  4. print('x=',x) #异常后的不执行
  5. except ZeroDivisionError:
  6. print('除数不能为零') #发生异常后执行的部分
  7. else:
  8. print('没有除数异常') #没有发生异常后执行
  9. finally:
  10. x = 0
  11. print('finally') #不管有无异常均一定会执行的部分

  1. #捕获多种异常
  2. try:
  3. a
  4. x = 10/0
  5. except (ZeroDivisionError,NameError):
  6. print('出错了') #发生异常后执行的部分
  1. #捕获任何类型的异常
  2. import traceback
  3. try:
  4. x = 10/0
  5. a
  6. except BaseException as e:
  7. print(e) #仅显示异常信息
  8. traceback.print_exc() #显示错误所在详细的堆栈信息
  9. print('后续程序继续执行')

抛出异常raise

  1. """抛出异常 raise 错误类型(错误信息)"""
  2. name = 'abc'
  3. if len(name) <= 6:
  4. raise ValueError('username必须大于6个字符')
  5. else:
  6. print('ok')

自定义异常

  1. """自定义异常类,继承自已有异常类"""
  2. class userError(BaseException):
  3. pass
  4.  
  5. name = 'abc'
  6. if name != 'abcd':
  7. raise userError('user error')

the end!

python入门19 异常及异常处理 异常捕获的更多相关文章

  1. python入门(十一):异常

     1.异常概念: >>> a Traceback (most recent call last): File "<stdin>", line 1, i ...

  2. Python入门笔记(17):错误、异常

    一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象.当错误中断流程时,该程序将尝试寻找异常处理程序 ...

  3. Python入门(一) 异常处理

    异常处理 捕捉异常可以使用try/except语句. try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理. 以下是语法: try: <语句> # ...

  4. Python入门版

    一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...

  5. python异常处理-异常捕获-抛出异常-断言-自定义异常-UDP通信-socketserver模块应用-3

    异常捕获 异常:程序在运行过程中出现了不可预知的错误,并且该错误没有对应的处理机制,那么就会以异常的形式表现出来 影响:整个程序无法再正常运行 异常的结构 异常的类型 NameError 异常的信息 ...

  6. 十九. Python基础(19)--异常

    十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try:     <............. ...

  7. python异常(概念、捕获、传递、抛出)

    异常 目标 异常的概念 捕获异常 异常的传递 抛出异常 01. 异常的概念 程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常 程序停止执 ...

  8. Python异常和异常处理

    Python异常和异常处理2017年12月20日 22:17:08 Megustas_JJC 阅读数:114 标签: python 异常处理 更多 个人分类: Python 版权声明:本文为博主原创文 ...

  9. Python标准异常和异常处理详解

    python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 1.异常处理: 本站Python教程会具体介绍. 2.断言(Asserti ...

随机推荐

  1. hdu-1022-栈

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  2. Android: 通过Runtime.getRuntime().exec调用底层Linux下的程序或脚本

    Android Runtime使得直接调用底层Linux下的可执行程序或脚本成为可能 比如Linux下写个测试工具,直接编译后apk中通过Runtime来调用 或者写个脚本,apk中直接调用,省去中间 ...

  3. 常用Redis命令

    在 Windows 下配置 Redis 集群 在 Windows 下配置多个 Redis(简化配置) MicrosoftArchive/redis 官方Redis集群搭建文档 Redis命令 Cent ...

  4. mathjs使用指南

    1.安装 npm install mathjs 2.引入 import * as math from "mathjs" 3.使用方法 函数调用法:math.add(math.sqr ...

  5. IBM Rational Appscan Part 1

    By Rohit T|July 23rd, 2012 http://resources.infosecinstitute.com/ibm-rational-appscan/ IBM Rational ...

  6. 关于微信小程序的动态跳转

    最近在研究微信小程序.在做一个简单的购物小程序时,遇到一个问题:如何通过扫码实现动态的跳转页面功能, 通过研究终于找到了解决方法: 首先当然要实现扫码解析功能js的代码: click: functio ...

  7. c#-FrameWork01

    Framwork ArrayList l  集合类似于数组,同样是用来存放连续数据的,但集合的功能比数组更强大 l  集合和数组的最大区别:数组一旦定义以后就无法改变其大小,而集合可以动态的改变其大小 ...

  8. 线程操作之Thread类

    在.Net fremework 中,所有与线程有关的操作都封装在System.Thread命名空间中, 所以在操作线程时,要先引入次命名空间 Thread类的常用方法 Abort 线程终止 Join ...

  9. 了解WaitForSingleObject中WAIT_ABANDONED 返回值

    1.互斥量内核对象 互斥量内核对象用来确保一个线程独占对一个资源的访问.互斥量对象包含一个使用计数.线程ID以及递归计数.互斥量与关键段的行为完全相同.但是互斥量是内核对象,而关键段是用户模式下的同步 ...

  10. Oracle中scott用户下基本表练习SQL语句

    --选择部门中30的雇员SELECT * from emp where DEPTNO=30;--列出所有办事员的姓名.部门.编号--采用内连接方式,也就是等值链接,也是最常用的链接SELECT ena ...