python try 异常处理 史上最全

在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!

有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.

为了处理异常,我们使用try...except

把可能发生错误的语句放在try模块里,用except来处理异常。

except可以处理一个专门的异常,也可以处理一组圆括号中的异常,

如果except后没有指定异常,则默认处理所有的异常。

每一个try,都必须至少有一个except

在python的异常中,有一个万能异常:Exception,他可以捕获任意异常

s1 = 'hello'
try:int(s1)
except Exception,e:print e
任意异常Exception

程序时需要考虑到try代码块中可能出现的多个异常,可以这样写:

s1 = 'hello'
try:int(s1)
except IndexError,e:print e
except KeyError,e:print e
except ValueError,e:print e
多个exception

 异常的简单结构和复杂结构

try:pass
except Exception as e:  #python2 中还可以这样写:except Exception,epass
简单实列
 1 try:
 2     # 主代码块
 3     pass
 4 except KeyError,e:
 5     # 异常时,执行该块
 6     pass
 7 else:
 8     # 主代码块执行完,执行该块
 9     pass
10 finally:
11     # 无论异常与否,最终执行该块
12     pass
完整实列

先定义特殊提醒的异常,最后定义Exception,来确保程序正常运行。

s1 = 'hello'
try:int(s1)
except KeyError,e:print '键错误'
except IndexError,e:print '索引错误'
except Exception, e:print '错误'
先特殊,后万能

主动触发异常

raise Exception('messages') 可以自定义报错信息

a=2
if a > 1:raise ValueError('值大于1')
raise

 

try:raise Exception('错误了。。。')
except Exception,e:print e
raise 触发异常

 自定义异常

class WupeiqiException(Exception):def __init__(self, msg):self.message = msgdef __str__(self):return self.messagetry:raise WupeiqiException('我的异常')
except WupeiqiException,e:print e
自定义异常类

 python所有的标准异常类:

异常名称描述
BaseException所有异常的基类
SystemExit解释器请求退出
KeyboardInterrupt用户中断执行(通常是输入^C)
Exception常规错误的基类
StopIteration迭代器没有更多的值
GeneratorExit生成器(generator)发生异常来通知退出
SystemExitPython 解释器请求退出
StandardError所有的内建标准异常的基类
ArithmeticError所有数值计算错误的基类
FloatingPointError浮点计算错误
OverflowError数值运算超出最大限制
ZeroDivisionError除(或取模)零 (所有数据类型)
AssertionError断言语句失败
AttributeError对象没有这个属性
EOFError没有内建输入,到达EOF 标记
EnvironmentError操作系统错误的基类
IOError输入/输出操作失败
OSError操作系统错误
WindowsError系统调用失败
ImportError导入模块/对象失败
KeyboardInterrupt用户中断执行(通常是输入^C)
LookupError无效数据查询的基类
IndexError序列中没有没有此索引(index)
KeyError映射中没有这个键
MemoryError内存溢出错误(对于Python 解释器不是致命的)
NameError未声明/初始化对象 (没有属性)
UnboundLocalError访问未初始化的本地变量
ReferenceError弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError一般的运行时错误
NotImplementedError尚未实现的方法
SyntaxErrorPython 语法错误
IndentationError缩进错误
TabErrorTab 和空格混用
SystemError一般的解释器系统错误
TypeError对类型无效的操作
ValueError传入无效的参数
UnicodeErrorUnicode 相关的错误
UnicodeDecodeErrorUnicode 解码时的错误
UnicodeEncodeErrorUnicode 编码时错误
UnicodeTranslateErrorUnicode 转换时错误
Warning警告的基类
DeprecationWarning关于被弃用的特征的警告
FutureWarning关于构造将来语义会有改变的警告
OverflowWarning旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning关于特性将会被废弃的警告
RuntimeWarning可疑的运行时行为(runtime behavior)的警告
SyntaxWarning可疑的语法的警告
UserWarning用户代码生成的警告

转载于:https://www.cnblogs.com/charles7987/p/10108188.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring+Spring Security+JSTL实现的表单登陆的例子

2019独角兽企业重金招聘Python工程师标准>>> Spring Security允许开发人员轻松地将安全功能集成到J2EE Web应用程序中,它通过Servlet过滤器实现“用户自定义”安全检查。 在本教程中,我们将向您展示如何在Spring MVC中集成Spring Security 3…

数学教师计算机能力提升,深度融合信息技术,提升数学课堂魅力

原标题:深度融合信息技术,提升数学课堂魅力2018年小学数学教学与信息技术深度融合专题网络教研活动2018年10月31日,我校数学科组根据北片指导中心文件精神,进行了一次小学数学教学与信息技术深度融合专题网络教研活动。本次教研活…

Linux 内核启动流程

目录链接脚本vmlinux.ldsLinux 内核入口stext__mmap_switched 函数start_kernel 函数rest_init 函数init 进程看完Linux 内核的顶层Makefile 以后再来看Linux 内核的大致启动流程,Linux 内核的启动流程要比uboot 复杂的多,涉及到的内容也更多&#xff0c…

vs文件上传失败--超过最大字符限制

一、问题 在文件上传时&#xff0c;会遇到大文件上传失败。 》F12查看报错网络请求返回结果 》问题分析 由于vs上传文件默认的字符大小控制。 二、解决方法 》在web.config中修改或添加最大允许上传文件的大小 1 <system.web> 2 <httpRuntime targetFramework&q…

为什么linux默认都没有MP3和视频或者连FLASH都没有呢?

为什么linux默认都没有MP3和视频或者连FLASH都没有呢&#xff1f;这是转自官方的说明。先后明&#xff0c;后面讲一下如何动手来让LINUX支持这些最基本的功能&#xff01;为什么 Fedora 没有包含对专有格式例如 MP3 或 MPEG 的支持&#xff1f; MP3 和 MPEG 格式受专利保护&…

微计算机和微处理器的区别,CPU和微处理器的区别

CPU和微处理器是成功操作系统的基础。它们都执行不可或缺的计算机任务&#xff0c;例如算术&#xff0c;数据处理&#xff0c;逻辑和I / O操作&#xff0c;但是CPU与微处理器的区别并不是那么黑与白。尽管一些IT管理员可以互换使用CPU和微处理器&#xff0c;但现实是大多数CPU是…

单例模式创建的两种方法

package com.wetuo.javabase; public class SingletonDemo {private static SingletonDemo instance new SingletonDemo();private SingletonDemo() {}public static SingletonDemo getInstance() {return instance;}//充血模式} 方法二 public class SingletonDemo {private …

java 8 新特性之日期-时间 API

Date-Time API简介 在Java8之前的版本中&#xff0c;我们处理时间类型常常使用的是java.util包下的Date类。但使用Date类却有诸多的弊端&#xff0c;如&#xff1a; java.util.Date 是非线程安全的&#xff0c;所有的日期类都是可变的&#xff1b;日期/时间类的定义并不一致&am…

向日葵在mac不能以服务器运行吗,mac远程桌面连接在哪?向日葵可以实现mac远程连接吗?...

目前大部分用户的电脑都是Windows系统的&#xff0c;也有部分用户用的Mac电脑&#xff0c;对于Mac电脑用户来说&#xff0c;许多操作与Windows都不同&#xff0c;比如他们就不知道mac远程桌面连接在哪?当遇到需要别人远程帮助时就无法调出&#xff0c;下面小编给大家讲解下它的…

根文件系统构建(BusyBox方式)

目录根文件系统简介BusyBox构建根文件系统BusyBox简介编译BusyBox构建根文件系统(生成bin、sbin、usr、linuxrc)向根文件系统添加lib库创建其他文件夹根文件系统初步测试完善根文件系统创建/etc/init.d/rcS文件创建/etc/fstab文件创建/etc/inittab文件根文件系统其他功能测试软…

ADODB下载地址

http://sourceforge.net/projects/adodb/files/adodb-php-4-and-5/转载于:https://blog.51cto.com/anxueyueying/1351041

kk 服务器信息,手机kk服务器设置

手机kk服务器设置 内容精选换一换已获取服务器管理员帐号与密码。打开CMD运行窗口&#xff0c;输入gpedit.msc&#xff0c;打开本地组策略编辑器。打开组策略在指定RD会话主机服务器的授权模式下拉列表中选择按用户。设置允许RD最大连接数位999999。设置结束已断开连接的会话为…

系统烧写方法(MfgTool烧写工具)

目录MfgTool 工具简介MfgTool 工作原理简介USB接线系统烧写原理烧写NXP 官方系统烧写自制的系统系统烧写网络开机自启动设置改造我们自己的烧写工具改造MfgTool烧写测试解决Linux 内核启动失败总结前面我们已经移植好了uboot 和linux kernle&#xff0c;制作好了根文件系统。但…

Android自带Monkey测试

Monkey是在模拟器上或设备上运行的一个小程序&#xff0c;它能够产生为随机的用户事件流&#xff0c;例如点击(click)&#xff0c;触摸(touch)&#xff0c;挥手&#xff08;gestures&#xff09;&#xff0c;还有一系列的系统级事件。可以使用Monkey来给正在开发的程序做随机的…

BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)

题目描述 强强和萌萌是一对好朋友。有一天他们在外面闲逛&#xff0c;突然看到前方有一棵紫荆树。这已经是紫荆花飞舞的季节了&#xff0c;无数的花瓣以肉眼可见的速度从紫荆树上长了出来。仔细看看的话&#xff0c;这个大树实际上是一个带权树。每个时刻它会长出一个新的叶子节…

捣蛋鹅显示服务器已满,无题大鹅模拟奖杯攻略分享

捣蛋鹅成就怎么解锁&#xff1f;游戏章节不是很长&#xff0c;不同章节中都有不同的奖杯需要解锁&#xff0c;有些比较简单&#xff0c;有的需要一点点技巧&#xff0c;小编这里给大家带来了“PSN lyplyp_lll”总结的无题大鹅模拟奖杯攻略分享&#xff0c;一起来看下文中具体的…

线程的属性 —— 分离的状态(detached state)、栈地址(stack address)、栈大小(stack size)

参考&#xff1a;&#xff08;四十二&#xff09;线程——线程属性 作者&#xff1a;FadeFarAway 发布时间&#xff1a;2017-01-17 14:09:55 网址&#xff1a;https://blog.csdn.net/FadeFarAway/article/details/54576771 目录引入线程属性初始化一、线程的分离状态(detached …

【微信小游戏实战】零基础制作《欢乐停车场》二、关卡设计

1、游戏立项 微信小游戏中有一款《欢乐停车场Plus》的小游戏&#xff0c;大家可以搜索玩下。这是一款益智类的小游戏&#xff0c;游戏中有红、黄、绿、蓝、紫5辆豪车6个停车位&#xff0c;玩家通过可行走路线移动小车&#xff0c;最终让各颜色的小车停到对应的颜色车位&#xf…

服务器端密钥库文件,使用密钥库文件为SOAP运行客户端WS

该错误表示在您的信任库中找不到服务器证书。检查.keystore文件的内容以确定它是否包含服务器证书(在truststore中列为trustedEntry)。如果是&#xff0c;请设置以下系统属性(使用-D JVM参数或System.setProperty())。javax.net.ssl.trustStore<>javax.net.ssl.trustStor…

线程同步(互斥锁、条件、读写锁、信号量)

参考&#xff1a;&#xff08;四十三&#xff09;线程——线程同步&#xff08;互斥锁、读写锁、条件变量、信号量&#xff09; 作者&#xff1a;FadeFarAway 发布时间&#xff1a;2017-01-17 21:25:28 网址&#xff1a;https://blog.csdn.net/FadeFarAway/article/details/545…