try关键字,定义获取程序错误

except关键字,出现异常错误执行里面的代码

Exception定义错误类,Exception能获取到所有类型的错误错误,as创建错误对象名称,自动获取错误信息

#!/usr/bin/env python
# -*- coding:utf8 -*-
"""获取程序错误信息"""
try: #try关键字定义获取程序错误
#代码块
a = str(字符串)
print(a)
except Exception as e: #except关键字出现异常错误执行里面的代码,Exception定义错误类,as创建错误对象自动获取错误信息
print(e) #打印错误对象输出错误信息
# 输出
# name '字符串' is not defined

python中的异常种类非常多,每个异常专门用于处理获取某一项异常

常见错误类型

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的
我们在以后记录错误时,要想记录对应的错误信息可以用以下办法
先用对应的错误类型来获取,如果都不是前面对应的错误类型,最后用Exception来获取
#!/usr/bin/env python
# -*- coding:utf8 -*-
"""获取程序错误信息"""
try:
a = str(字符串)
print(a)
except AttributeError as c: #出现对应错误就获取到信息,打印出来,如果不是对应错误则不执行
print(c)
except IOError as d: #出现对应错误就获取到信息,打印出来,如果不是对应错误则不执行
print(d)
except ImportError as e: #出现对应错误就获取到信息,打印出来,如果不是对应错误则不执行
print(e)
except Exception as f: #都不是上面对应的错误,用Exception来不管是上面错误都获取到
print(f)
# 输出
# name '字符串' is not defined

else主代码块执行完,执行该块
finally无论异常与否,最终执行该块

#!/usr/bin/env python
# -*- coding:utf8 -*-
try:
#主代码块
a = str(hjhb)
except Exception as e:
#代码错误执行模块
print(e)
else:
print("主代码块执行完,执行该块")
finally:
print("无论异常与否,最终执行该块")

主动触发异常,也就是没有错误,主动触发一个错误

raise关键字,主动触发一个错误

#!/usr/bin/env python
# -*- coding:utf8 -*-
try:
#主代码块
a = str("")
raise Exception('错误了。。。')
except Exception as e:
#代码错误执行模块
print(e)
# 输出
# 错误了。。。
 

Python--异常处理和断言的更多相关文章

  1. python异常处理与断言以及日志模块

    python异常处理与断言 目录: 1.异常处理 2.断言(assert) 3.日志模块(logging) 4.修改之前的车票信息查询,把日志模块.异常处理加进去 1.异常处理 代码如下: 语法: t ...

  2. python异常处理和断言

    http://blog.csdn.net/pipisorry/article/details/21841883 关于异常处理有必要么的讨论 最重要的问题是你在开发过程中隐藏了bug,如果当时你没加这个 ...

  3. (69)Python异常处理与断言

    http://blog.csdn.net/pipisorry/article/details/21841883 断言 断言是一句必须等价于布尔真的判定;此外,发生异常也意味着表达式为假.这些工作类似于 ...

  4. python异常处理、断言

    异常处理基本语法 捕获异常 try: 语句1 语句2 ... except ERRNAME as e: print(e) #尝试执行语句,捕获到ERRNAME异常时打印异常信息e 捕获多个异常 try ...

  5. 14、python异常处理及断言

    前言:本文主要介绍python中异常的处理及断言,包括异常类型.异常捕获.主动跑出异常和断言. 一.异常类型介绍 什么是异常?异常即是一个事件,该事件会在程序执行过程中发生,会影响程序的正常执行,一般 ...

  6. [Python学习笔记][第八章Python异常处理结构与程序调试]

    1/30 第八章Python异常处理结构与程序调试 异常处理 try-except结构 try: try块 except Exception: except块 try-except-else结构 tr ...

  7. python异常处理try,except,else,finally,raise

    先看下else的使用: try: ... exception: ... else: ... 只有在try中没有发生任何异常,所有代码完全成功的情况下才会转入else 再看下finally: final ...

  8. Python 异常处理

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

  9. Python异常处理总结

    一.何谓异常处理 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这 ...

  10. Python异常处理回顾与总结

    1 引言 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这种错误在 ...

随机推荐

  1. linux系统管理 基本指令

    命令提示符 [root@ssgao1987 ~]# 'root' 当前登陆用户 'ssgao1987' 主机名 '~' 当前所在目录(home目录) '#' 超级用户的提示符 '$' 普通用户的命令提 ...

  2. WPF 之 TreeView节点重命名

    下面的TreeView节点是通过数据双向绑定的方式,绑定到TextBlock控件和TextBox控件的Text属性上,并且让两者绑定相同的属性,同时使TextBox控件刚好完全覆盖TextBlock控 ...

  3. day27-python阶段性复习-基础

    一.基础资料,安装python Python 跨平台的,(Linux,Windows,mac) 网站www.python.org 解释器交互方式 Ipython Python shell https: ...

  4. OO Summary Ⅱ

    [第五次作业——多线程电梯] 类图 度量 协作图 设计分析: 多线程电梯是我第一次接触多线程,因此真的是无(瞎)从(g)下(2)手(写),感觉仿佛只是用一个调度器来调度3部电梯但又总觉得好像哪里不太对 ...

  5. LeetCode难度与出现频率

    转载自:LeetCode Question Difficulty Distribution               1 Two Sum 2 5 array sort         set Two ...

  6. java动手动脑3

    2016-10-152016-10-15一.编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. 生成50个1到10的随机整数. value=a+(int)(Math.Random() ...

  7. Java基础-变量常量

    变量 内存中的一小块区域,需要变量名来访问 变量的命名: 变量类型 变量名=变量值 例:String stuName= "wangwei"; java中的所有标点符号都是英文的 变 ...

  8. SharePoint REST API - 基本操作(一)

    博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...

  9. CodeForces - 429A Xor-tree

    Iahub is very proud of his recent discovery, propagating trees. Right now, he invented a new tree, c ...

  10. <Spark><Spark Streaming><作业分析><JobHistory>

    Intro 这篇是对一个Spark (Streaming)作业的log进行分析.用来加深对Spark application运行过程,优化空间的各种理解. Here to Start 从我这个初学者写 ...