python的异常处理try/except 万能处理exception
1、try方式
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑
except ValueError as e: #except代表捕捉的意思,as,把ValueError取个别名叫e
print(e)
#表示代码在执行过程中遇到异常之后直接跳到except C:\python35\python3.exe D:/pyproject/day31/错误与异常.py >>>23 >>>>dd invalid literal for int() with base 10: 'dd'
那如果出现了其他的类型的错误呢。我们上面这个只能捕捉到这一种错误类型
2、try多分支异常处理,类似于elif
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑
except KeyError as e: #except代表捕捉的意思,把ValueError取个别名叫e
print(e)
except ValueError as e:
print("--->",e) C:\python35\python3.exe D:/pyproject/day31/异常处理.py >>>aa ---> invalid literal for int() with base 10: 'aa'
2.1上面这是2种错误,那么如果再来一种错误呢
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑 l=[1,2,3]
l[666666]#取一个不存在的索引就会触发IndexError
except KeyError as e: #except代表捕捉的意思,把ValueError取个别名叫e
print(e)
except ValueError as e:
print("--->",e)
except IndexError as e:
print("索引错误",e) C:\python35\python3.exe D:/pyproject/day31/异常处理.py >>>1 >>>>2 索引错误 list index out of range
2.2如果try里面的代码运行有错误了,并不影响try外面的代码的继续运行的
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑 l=[1,2,3]
l[666666]#取一个不存在的索引就会触发IndexError
except KeyError as e: #except代表捕捉的意思,把ValueError取个别名叫e
print(e)
except ValueError as e:
print("--->",e)
except IndexError as e:
print("索引错误",e)
print("我是try外面的逻辑,我可以正常运行") C:\python35\python3.exe D:/pyproject/day31/异常处理.py >>>11 >>>>sdsf ---> invalid literal for int() with base 10: 'sdsf' 我是try外面的逻辑,我可以正常运行
3、那么还有好多的异常类型呢,总不能一个一个的都加上去吧,这时候就用到了万能异常
Exception
这样的话不管什么错误都可以捕捉的到了。
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑 l=[1,2,3]
l[666666]#取一个不存在的索引就会触发IndexError
except Exception as e: print("万能异常",e)
print("我是try外面的逻辑,我可以正常运行") C:\python35\python3.exe D:/pyproject/day31/异常处理.py >>>111 >>>>sdfdsf 万能异常 invalid literal for int() with base 10: 'sdfdsf' 我是try外面的逻辑,我可以正常运行
3.1 try else 当代码块中没有异常则触发else
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑 except Exception as e: #except代表捕捉的意思,把ValueError取个别名叫e
print("万能异常",e)
else:
print("没有异常就执行我")
print("我是try外面的逻辑,我可以正常运行") C:\python35\python3.exe "D:/pyproject/day31异常处理 socket介绍/异常处理.py" >>>11 >>>>22 没有异常就执行我 我是try外面的逻辑,我可以正常运行
3.2 finally 不管有没有异常都执行这段代码块
try:
age=int(input(">>>"))
int(age)#主逻辑 num=input(">>>>")
int(num)#主逻辑 except Exception as e: #except代表捕捉的意思,把ValueError取个别名叫e
print("万能异常",e)
finally:
print("无论是否异常都执行这段代码,通常是进行清理操作")
print("我是try外面的逻辑,我可以正常运行") C:\python35\python3.exe "D:/pyproject/day31异常处理 socket介绍/异常处理.py" >>>11 >>>>sddsdf 万能异常 invalid literal for int() with base 10: 'sddsdf' 无论是否异常都执行这段代码,通常是进行清理操作 我是try外面的逻辑,我可以正常运行
3.3我想达到这样的效果,如果用户输入的不对,就让他重新输入,知道正确为止
while True:
try:
age=int(input(">>>"))
int(age)#主逻辑
break
except Exception as e:
print("请重新输入",e)
print("我是try外面的逻辑,我可以正常运行") C:\python35\python3.exe D:/pyproject/day31/异常处理.py >>>222ss 请重新输入 invalid literal for int() with base 10: '222ss' >>>11 我是try外面的逻辑,我可以正常运行
万能异常的缺点就是,假如你有一万行代码,不管啥错误都报这个,那你就不知道是哪里错了。。。
python的异常处理try/except 万能处理exception的更多相关文章
- python基础-异常处理
一.错误和异常 程序中难免出现错误,而错误分成两种 1.1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def te ...
- python之异常处理
异常处理是高级编程语言必备的一个功能模块. 一.异常基础 在编程过程中为了增加友好性.容错性和健壮性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大 ...
- python笔记--异常处理
Python异常处理 常见异常 AttributeError:属性错误,特性引用和赋值失败时会引发属性错误 NameError:试图访问的变量名不存在 SyntaxError:语法错误,代码形式错误 ...
- python 27 异常处理
目录 异常处理 1. 错误分类 2. 异常 3. 异常处理 4. 异常处理的两种方法 5. try的结构 5.1 结构一:单分支结构 5.2 结构二:多分支结构 5.3 结构三:万能异常 5.4 结构 ...
- python的异常处理及异常类定义
python的异常处理语法和大多数语言相似: try: try块的语句... except exceptiontype1 as var:#使用as语句获得本次捕获到的异常的实例var except块语 ...
- Python进阶----异常处理
Python进阶----异常处理 一丶错误和异常 错误: 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 ...
- Python 多进程异常处理
前言 最近项目用到了Python作为网站的前端,使用的框架是基于线程池的Cherrypy,但是前端依然有一些比较‘重’的模块.由于python的多线程无法很好的利用多核的性质,所以觉得把这些比较‘重’ ...
- python的异常处理机制
异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮. 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算 ...
- Python之异常处理-Exception
在写python程序时, 不要害怕报错, 也不要怕自己的英语不够好, 不要看到一有红色的字就心里发怂. 其实报的错也是有套路可寻滴~识别了异常的种类, 才能对症下药. 常见异常: Exception ...
随机推荐
- SCRUM 12.23
距离第二轮迭结束只有几天了. 我们全体组员现在的工作方向都在应用测试上. 明天的任务分配如下 成员 已完成任务 新任务 彭林江 落实API 自动爬虫测试 王卓 提升爬虫程序性能 正确性测试 郝倩 提升 ...
- Spring配置常识
(1)数据源配置 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" ...
- Atcoder D - Knapsack 1 (背包)
D - Knapsack 1 Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement The ...
- Java的Vector源码阅读
* The {@code Vector} class implements a growable array of * objects. Like an array, it contains comp ...
- CentOS 7 Install Adobe Flash Player
From Officail Adobe Flash Site don't down (YUM )adobe-release-x86_64-1.0-1.noarch.rpm,but to downloa ...
- JavaScript(ECMAScript) with 语句
有同事,爱尝鲜,JavaScript ECMAScript with 语句,找了半天不知道局部变量的出处,原来是with语句搞得鬼. http://www.w3school.com.cn/js/pro ...
- apply方法和call方法。函数属性与方法。
每个函数都有length属性哥prototype属性. length属性表示的是函数接入参数的个数 在es引用类型语言中,prototype是保存它们所有实例方法的真正所在.换句话来说,类似于toSt ...
- Oracle备份恢复简单过程以及中间的坑.
Oracle 冷备: 貌似需要dbca创建一致的oracle instance 服务器配置版本尽量相同,安装路径相同. 关闭Oracle服务 将oracle app 目录下的oradata以及有快速闪 ...
- Linux shell 菜鸟学习笔记....
20171123 Linux shell 基础学习笔记1. shell 的开始 一般是 #!/bin/bash 通过 #! 来唯一指定使用的shell路径 其他的 # 都表示注释.2. shell 的 ...
- wps word改多级编号为2.1
右键标题1, 修改样式 编号 多级编号 标题1 2 3 右键标题2 修改样式 选择格式-编号 选择多级编号-标题1 2 3 直接点确定,OK. ---------------------------- ...