day 1 异常基本功能
1.什么是异常?程序出现的错误
In [1]: open('xxx.txt')
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-1-e41727968802> in <module>()
----> 1 open('xxx.txt') FileNotFoundError: [Errno 2] No such file or directory: 'xxx.txt' In [2]: print(num)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-2-64c1b968c91a> in <module>()
----> 1 print(num) NameError: name 'num' is not defined
2.异常处理,预处理方案
try:
print(num)
print("-----1-----")
except NameError:
print("出现名字异常错误")
print("------2------")
#### 运行结果
出现名字异常错误
------2------
3.多个异常
1)版本1:
try:
open("xxx.txt")
print(num)
print("-----1-----")
except NameError:
print("出现名字异常错误") except FileNotFoundError:
print("文件不存在。。") print("------2------")
文件不存在。。
------2------
2)版本2:
try:
open("xxx.txt")
print(num)
print("-----1-----")
except (NameError,FileNotFoundError):
print("出现异常错误") print("------2------")
出现异常错误
------2------
3)版本3:其他异常
try:
11/0
open("xxx.txt")
print(num)
print("-----1-----")
except (NameError,FileNotFoundError):
print("出现异常错误")
except Exception:
print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到") print("------2------")
如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到
------2------
4)版本4:查看异常原因
try:
11/0
open("xxx.txt")
print(num)
print("-----1-----")
except (NameError,FileNotFoundError):
print("出现异常错误") except Exception as ret:
print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
print(ret) print("------2------")
如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到
division by zero
------2------
5)版本5:没有异常
try:
# 11/0
# open("xxx.txt")
# print(num)
print("-----1-----")
except (NameError,FileNotFoundError):
print("出现异常错误") except Exception as ret:
print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
print(ret) else:
print("没有出现异常,,,哈哈哈哈") print("------2------")
-----1-----
没有出现异常,,,哈哈哈哈
------2------
4 finally
1)没有异常
try:
# 11/0
# open("xxx.txt")
# print(num)
print("-----1-----")
except (NameError,FileNotFoundError):
print("出现异常错误") except Exception as ret:
print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
print(ret) else:
print("没有出现异常,,,哈哈哈哈")
finally:
print("---这段程序死亡时候执行finally---") print("------2------")
-----1-----
没有出现异常,,,哈哈哈哈
---这段程序死亡时候执行finally---
------2------
2)有异常
try:
11/0
open("xxx.txt")
print(num)
print("-----1-----")
except (NameError,FileNotFoundError):
print("出现异常错误") except Exception as ret:
print("如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到")
print(ret) else:
print("没有出现异常,,,哈哈哈哈")
finally:
print("---这段程序死亡时候执行finally---") print("------2------")
如果用了Exception,那么意味着只要上面的except没有捕获到异常,这个except一定会捕获到
division by zero
---这段程序死亡时候执行finally---
------2------
3)不管有没有异常,都关闭文件
import time
try:
f = open('test.txt')
try:
while True:
content = f.readline()
if len(content) == 0:
break
time.sleep(2)
print(content)
except:
#如果在读取文件的过程中,产生了异常,那么就会捕获到
#比如 按下了 ctrl+c
pass
finally:
f.close()
print('关闭文件')
except:
print("没有这个文件")
day 1 异常基本功能的更多相关文章
- 异常上报功能Bugly简介
目的:为了能够快速定位到线上版本bug位置,经过比较之后,决定使用腾讯家的Bugly. 1.注册产品 官方文档使用指南 1.1 登录 - 使用 QQ 登录Bugly官网 没有账号就注册,要实名就实名, ...
- SpringBoot2.x整合Email并利用AOP做一个项目异常通知功能
因为不知aop能干嘛,因此用aop做个小功能,再结合最近学的springboot-Email做了个系统异常自动邮件通知的功能, 感觉满满的成就感. AOP不懂的可以看上一篇:https://www.c ...
- MVC4.0 利用HandleErrorAttribute和log4net实现记录异常日志功能
1.MVC4.0中HandleErrorAttribte已经帮我们处理了异常问题,当我们新建一个非空的MVC项目时候,在FilterConfig中会发现这样的代码 public class Filte ...
- PHP 面向对象编程和设计模式 (4/5) - 异常的定义、扩展及捕获
PHP高级程序设计 学习笔记 2014.06.12 异常经常被用来处理一些在程序正常执行中遇到的各种类型的错误.比如做数据库链接时,你就要处理数据库连接失败的情况.使用异常可以提高我们程序的容错特性, ...
- 如何解救在异步Java代码中已检测的异常
Java语言通过已检测异常语法所提供的静态异常检测功能非常实用,通过它程序开发人员可以用很便捷的方式表达复杂的程序流程. 实际上,如果某个函数预期将返回某种类型的数据,通过已检测异常,很容易就可以扩展 ...
- Spring-MVC开发之全局异常捕获全面解读
异常,异常 我们一定要捕获一切该死的异常,宁可错杀一千也不能放过一个! 产品上线后的异常更要命,一定要屏蔽错误内容,以免暴露敏感信息! 在用Spring MVC开发WEB应用时捕获全局异常的方法基本有 ...
- JavaEE基础(十九)/异常和File
1.异常(异常的概述和分类) A:异常的概述 异常就是Java程序在运行过程中出现的错误. B:异常的分类 通过API查看Throwable Error 服务器宕机,数据库崩溃等 Exception ...
- Spring aop 实现异常拦截
使用aop异常挂载功能可以统一处理方法抛出的异常,减少很多重复代码,实现如下: 1.实现ThrowAdvice public class ExceptionHandler implements Thr ...
- 在客户环境定位.net程序异常
http://www.cnblogs.com/yuilin/p/3788796.html 我们的程序最后都会运行在客户的环境中,客户环境上不会有VS这样的开发工具,那么怎么办呢? 我们可以使用一个很小 ...
随机推荐
- Html5 移动应用软件开发框架 JqueryMobile SenchaTouch 介绍
一.JqueryMobile 介绍 jQuery Mobile 是 jQuery 在手机上和平板设备上的版本. jQuery Mobile 不仅会给主流移动平台带来 jQuery 核心库,而且会发布一 ...
- ubuntu服务器下tomcat安装(不推荐使用apt-get)
最近在阿里云服务器上装tomcat,一开始为了省事直接使用了apt-get安装,结果整个程序被拆开散到了好多地方,尤其是像网上说要把打包好了.war文件放到webapps文件夹下,但是开始并没有在/u ...
- BZOJ3174:[TJOI2013]拯救小矮人(DP)
Description 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决定搭一个人梯.即:一个小矮人站在另一小矮人的 肩膀上,知道最顶端的小矮人伸直胳膊可以碰到陷阱口.对于每一个小矮人, ...
- 查看oracle中表的索引
oracle中表的索引信息存在 user_indexes 和 user_ind_columns 两张表里面, 其中, user_indexes 系统视图存放是索引的名称以及该索引是否是唯一索引等信息, ...
- adb命令篇 (转载)
转自:https://www.cnblogs.com/ailiailan/p/7896534.html 1.抓log方法 (bat文件) mkdir D:\logcat set /p miaosh ...
- 【转】如何开发自己的HttpServer-NanoHttpd源码解读
现在作为一个开发人员,http server相关的内容已经是无论如何都要了解的知识了.用curl发一个请求,配置一下apache,部署一个web server对我们来说都不是很难,但要想搞清楚这些背后 ...
- Git创建本地分支并关联远程分支
创建本地分支git branch 分支名 例如:git branch dev,这条命令是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev ...
- Linux下Java性能监控
Linux下Java性能监控 一.JVM堆内存使用监控 获取thread dump的3种方法: 1)使用$JAVA_HOME/bin/jcosole中的MBean,到MBean>com.sun. ...
- ZCMU 2177 Lucky Numbers (easy)
传送门: http://acm.zcmu.edu.cn/JudgeOnline/problem.php?id=2177 2177: Lucky Numbers (easy) 时间限制: 2 Sec ...
- [Oracle]记一次由sequence引发的enq sv-contention等待事件
数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增,大约到了80个会话.通过查看EM的SQL信息,发现等待产生于SQL语句 se ...