Exception

1.assertionerror举例

 >>> my_list=['小甲鱼是帅哥']
>>> assert len(my_list)>0
>>> my_list.pop()
'小甲鱼是帅哥'
>>> assert len(my_list)>0
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
assert len(my_list)>0
AssertionError
>>>

2.attribute举例

 >>> my_list.fishc #实际上my_list这个对象并没有fishc这样的属性,所以会报错
2 Traceback (most recent call last):
3 File "<pyshell#7>", line 1, in <module>
4 my_list.fishc
5 AttributeError: 'list' object has no attribute 'fishc'

3.indexerror举例

 >>> my_list=[1,2,3]
>>> my_list[3]
3 Traceback (most recent call last):
4 File "<pyshell#9>", line 1, in <module>
5 my_list[3]
6 IndexError: list index out of range

4.keyerror举例

 >>> my_dict={'one':1,'two':2,'three':3}
>>> my_dict['one']
1
>>> my_dict['four'] #访问的字典元素不存在
5 Traceback (most recent call last):
6 File "<pyshell#12>", line 1, in <module>
7 my_dict['four']
8 KeyError: 'four'
9 >>> my_dict.get('four') #使用get方法可以避免报错的出现,以避免让用户看到报错

5.nameerror举例

 >>> fishc #尝试访问一个不存在的变量
2 Traceback (most recent call last):
3 File "<pyshell#14>", line 1, in <module>
4 fishc
5 NameError: name 'fishc' is not defined

6.typeerror举例(不同类型间的无效操作)

 >>> 1+'' #‘1’
2 Traceback (most recent call last):
3 File "<pyshell#17>", line 1, in <module>
4 1+'1'
5 TypeError: unsupported operand type(s) for +: 'int' and 'str'

7.zerodivisionerror举例

 >>> 5/0
2 Traceback (most recent call last):
3 File "<pyshell#18>", line 1, in <module>
4 5/0
5 ZeroDivisionError: division by zero

——————————————————————————————————————————————————————

1.try……except

 try:
f=open('我为什么是一个文件.txt')
print(f.read())
f.close()
except OSError:
print('文件出错啦') #不会报错了,如果进入except就会打印出print('文件出错啦')的提示信息

如果开发人员还想看到报错那么完善为如下代码:

 try:
f=open('我为什么是一个文件.txt')
print(f.read())
f.close()
except OSError as reason:
print('文件出错啦\n错误的原因是:'+str(reason))

捕获多个异常抛出except情况:

 try:
sum=1+''
f=open('我为什么是一个文件.txt')
print(f.read())
f.close()
except OSError as reason:
print('文件出错啦\n错误的原因是:'+str(reason))
except TypeError as reason:
print('类型出错啦\n错误的原因是:'+str(reason))
——————————————————————————————————————————————————————————————
两个except可以优化为一个except如下:
except(OSError,TypeError):
    print('出错啦')

except不明确error报错:

 try:
sum=1+''
f=open('我为什么是一个文件.txt')
print(f.read())
f.close()
except: #except后未明确指出进入哪个错误
print('出错啦')

2.finally:无论如何都会被执行的代码

可以把上方f.close()代码写到finally中,try中不管有什么报错,那么close()语句都会被执行。

3.raise:自己引出一个异常

 >>> raise
2 Traceback (most recent call last):
3 File "<pyshell#0>", line 1, in <module>
4 raise
5 RuntimeError: No active exception to reraise
>>> 1/0
7 Traceback (most recent call last):
8 File "<pyshell#1>", line 1, in <module>
9 1/0
10 ZeroDivisionError: division by zero
>>> raise ZeroDivisionError
12 Traceback (most recent call last):
13 File "<pyshell#2>", line 1, in <module>
14 raise ZeroDivisionError
15 ZeroDivisionError
>>> raise ZeroDivisionError('除数为零的异常')
17 Traceback (most recent call last):
18 File "<pyshell#3>", line 1, in <module>
19 raise ZeroDivisionError('除数为零的异常')
20 ZeroDivisionError: 除数为零的异常

【Pyton】【小甲鱼】异常处理:你不可能总是对的的更多相关文章

  1. 【Pyton】【小甲鱼】类和对象

    一.类 定义一个类,例子如下: class Turtle: #定义一个名为Turtle的类,Python中类型约定以大写字母开头 #属性 color='green' weight=10 legs=4 ...

  2. 【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜

    pickle(泡菜): picking:将对象转换为二进制 unpicking:将二进制转换为对象 1 >>> import pickle 2 #picking:对象导入到文件中(二 ...

  3. 【Pyton】【小甲鱼】文件

    1.打开文件的集中模式: 2.文件对象方法: 对于文件对象方法的练习代码: 读取F:\\script\\script.txt位置文件中内容 >>> f=open('F:\\scrip ...

  4. 小甲鱼Python3笔记

    000-愉快的开始 入门容易,学习难,代码量少. 跨平台: Windows, Mac OS, Linux, UNIX. 应用领域: 操作系统 WEB 3D动画 企业应用 云计算等等. 001-我和Py ...

  5. 小甲鱼零基础入门学习python--课后作业

    [小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...

  6. 小甲鱼PE详解之IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用(PE详解03)

    咱接着往下讲解IMAGE_OPTIONAL_HEADER32 结构定义即各个属性的作用! (视频教程:http://fishc.com/a/shipin/jiemixilie/) 接着我们来谈谈 IM ...

  7. 小甲鱼PE详解之IMAGE_NT_HEADERS结构定义即各个属性的作用(PE详解02)

    PE Header 是PE相关结构NT映像头(IMAGE_NT_HEADER)的简称,里边包含着许多PE装载器用到的重要字段.下边小甲鱼将为大家详细讲解哈~ (视频教程:http://fishc.co ...

  8. 小甲鱼python视频第九讲(课后习题)

    1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个 ...

  9. 小甲鱼python视频第八讲(课后习题)

    1.for循环的使用,注意下面代码的区别 for i in range(0,10,2): print("i love you") for i in range(0,10): pri ...

随机推荐

  1. u3d 加密资源并缓存加载

    // C# Example // Builds an asset bundle from the selected objects in the project view. // Once compi ...

  2. java 读写文件例子

    在linux下可以读写中文 import java.io.*; import java.text.SimpleDateFormat; import java.util.*; public class ...

  3. django初体验 学习笔记

    django环境搭建     1.安装Python     2.ipython         sudo apt-get install ipython         sudo pip instal ...

  4. Cookie和Session机制详解

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...

  5. 树莓派3安装opencv2程序无法运行

    在raspberry pi3 上安装opencv3已测试,没有问题,而opencv2报错如下: Xlib: extension "RANDR" missing on display ...

  6. numpy基本方法

    在学习python的时候常常需要numpy这个库,每次都是用一个查一个,这个,终于见到一个完整的总结了http://blog.csdn.net/blog_empire/article/details/ ...

  7. 【线程】Thread中的join介绍

    因为sleep.wait.join等阻塞,可以使用interrupted exception异常唤醒. 一.作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行 ...

  8. Android 性能分析工具 TraceView

    官方地址 http://developer.android.com/tools/debugging/debugging-tracing.html 推荐:http://blog.csdn.net/inn ...

  9. git上传的文件夹为空的时候

    1,先删除空的文件夹 参考:https://www.cnblogs.com/wang715100018066/p/9694532.html 2,这个只能说是技巧不能说是方法,原理是在每个空文件夹新建一 ...

  10. sencha touch NavigationView

    NavigationView 是官方根据Container控件扩展而来的,由一个导航栏和一个card组成,具备导航和返回时自动销毁当前界面的功能,非常适合新手使用. 其中导航栏的代码如下: Ext.d ...