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这样的开发工具,那么怎么办呢? 我们可以使用一个很小 ...
随机推荐
- Linux Min装机--配置JDK替换OpenJDK
@Linux Min装机--配置JDK替换OpenJDK 1.将下载的JDK压缩包解压到/usr/lib/jvm wil use : 一.文件复制命令cp 命令格式:cp [-adfilp ...
- SOJ 1085 SCU 简单计算几何
BackGroud Year 2003不知你是否注意到,四川大学每年都会在各宿舍楼里放老鼠药,以解决学生宿舍的老鼠问题. 今年,学校的领导为了更好的展开灭鼠的行动,引进了一项新的技术:SCU(Supe ...
- CSS(层叠样式表)基础知识
CSS 指层叠样式表 (Cascading Style Sheets).样式定义怎样显示 HTML 元素.它通常存储在样式表中,把样式加入到 HTML 4.0 中,解决内容与表现分离的问题. 当同一 ...
- 解决 php7下 igbinary_unserialize_ref: invalid reference 的bug
最近组内升级了PHP7,某个接口偶发502,看了下php的错误日志如下: igbinary_unserialize_ref: invalid reference >= Memcached::ge ...
- background-position详解
一.background-position:left top; 背景图片的左上角和容器(container)的左上角对齐,超出的部分隐藏.等同于 background-position:0,0;也等同 ...
- 翻译 TI SerialBLEbridge V 1.4.1
原文地址:http://processors.wiki.ti.com/index.php/SerialBLEbridge_V_1.4.1 Sample App Overview This page d ...
- 内核调试工具——strace
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...
- Springboot 启动文件报错,原因是@ComponentScan写成了@ComponentScans
Springboot 启动文件报错,原因是@ComponentScan写成了@ComponentScans
- 设计一个学生类&班级类
第一题 设计一个学生类 属性:姓名.学号.年龄.成绩 设计一个班级类要求:实现向班级中添加学生.删除学生.查看学生.按照指定条件排序 属性:班级代号,所有学生 需要使用 calss, __int__, ...
- ElasticSearch优化系列三:机器设置(内存)
heap参数设置优化 命令行修改 ./bin/elasticsearch -Xmx10g -Xms10g xmx-JVM最大允许分配的堆内存,按需分配 xms-JVM初始分配的堆内存 此值设置与-Xm ...