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 ...
随机推荐
- 团队作业M1反思
经过这两个多月以来的软件工程的学习,还有团队项目的经历,总结反思如下: 首先,一个月的软件工程团队项目的进行让我对软件开发有了比较实际的认识,以前我们的编程多是个人编程,两人编程,程序难度低,代码量少 ...
- 【SE】Week3 : 四则运算式生成评分工具Extension&Release Version(附加题)
[附加题]第四阶段目标 - 界面模块,测试模块和核心模块的松耦合. 写到这里我只想吐槽一句,哪天我能写出功能复杂且真正松耦合的模块,我应该就不用写代码了吧[手动再见.. 当然这只是强调下松耦合和代码复 ...
- C#-ToString格式化
Int.ToString(format): 格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数,具体如下: 格式说明符 说明 ...
- Spring整合SpringMVC
整合:把在springMVC配置文件中的spring提取出来整合为另一份配置文件 希望: 1).Spring的配置文件只是用来配置和业务逻辑有关的功能(数据源.事务控制.切面....) 2).Spri ...
- git 使用ssh密钥
一.查看仓库支持的传输协议 1.1查看仓库支持的传输协议 使用命令 git remote -v 查看你当前的 remote url root@zengyue:/home/yuanGit# git re ...
- HDU 2024 C语言合法标识符
http://acm.hdu.edu.cn/showproblem.php?pid=2024 Problem Description 输入一个字符串,判断其是否是C的合法标识符. Input 输入 ...
- Docker Volume
http://www.cnblogs.com/sammyliu/p/5932996.html http://dockone.io/article/128
- Enum service under CentOS7
service --status all systemctl list-unit-files
- [转帖]super-inspire
quickStart/快速开始 访问临时服务器地址, 你可以在这里选择一个喜欢的系统, 然后系统将自动创建该系统的容器, 并自动打开新的网页进入 web shell 交互. 目前支持 Ubuntu14 ...
- 【转帖】M1、M2增速
M1.M2增速的背离与广义财政的资金滞留有关 作者: 万钊 2016-07-19 17:20 近期M1.M2增速的背离,引起了各方的极大关注.我们知道,M1以活期存款为主,具有高波动性,其增速与M2背 ...