Python 错误和异常处理
#常见的异常 class Human:
#属性
sex = 'man'
age = 18 #方法
def run(self):
print('跑啊~~~') #实例化对象
#zw = Human()
#print(zw.age) #AttributeError 尝试访问未知的对象属性
#print(zw.color) #lists = ['qtt','mll','cyy','lss']
#IndexError 索引错误
#print(lists[200]) #dicts = {'ym':'yongmei','bd':'baidong','qw':'qiaowei'}
#KeyError 键错误
#print(dicts['gg']) #KeyboardInterrupt 用户键盘终止程序运行
#while True:
#pass #NameError 变量名错误
#print(conghao) #IndentationError 缩进错误
#def myfunc():
#print('111')
#print('222') #ZeroDivisionError 除数不能为0
#12/0 #断言语句
#assert 3 < 1 #try...except语法 用于解决程序异常问题 try:
#此区域内尝试执行某些代码
girls = ['jiaojiao','lele','feifei']
#访问不存在的索引
#print(girls[10]) #访问不存在的变量
#print(pa) #设置当前区域只接受变量名称错误,并且解决
except NameError:#程序出现异常执行的区域
print('程序[变量名]出现了异常情况!') #设定当前区域只接受索引错误,并且解决
except IndexError:
print('程序[索引]出现了异常情况!') #接受所有异常的区域,并且解决
except:
print('程序出现了错误!') #程序没有出现任何异常执行的区域
else:
print('太好了一个错误都没有') #无论程序有没有异常都会执行取余
finally:
print('工作结束,收工走人') print('++++++++++++') #异常处理的小例子 try:
#书写一个列表
shits = ['ershi','yanshi','bishi','shi'] #访问不存在的索引
print(shits[100]) except IndexError as e:#as语法此处的作用是设置一个变量来接受错误的异常信息对象
#查看错误异常信息
print(e,type(e))
#提供异常的解决方案
print(shits[-1]) try:
print(pa)
except NameError:
print('None') #自定义错误类型和处理 #导入系统模块
import sys #定义获取信息的函数()文件名,所在函数名,当前行数
def get_head_info():
try:
raise Exception
except:
f = sys.exc_info()[2].tb_frame.f_back
return ( f.f_code.co_filename, f.f_code.co_name, str(f.f_lineno)) #不能为负数的异常类型
class FuShuError(RuntimeError):#自定义异常类需要继承运行时异常类 可以直接或者间接继承Exception类即可
#添加初始化魔术非法
def __init__(self,errormsg = '',errorno = '',errorline = '',errorfile = ''):
#将错误信息存入对象
self.msg = errormsg#错误信息
self.no = errorno#错误编号
self.line = errorline#错误行数
self.file = errorfile#错误文件 try:
#设置年龄
age = -18
#检测年龄是否合法
if age < 0:#年龄为负数 异常
#抛出异常
raise FuShuError('值为负数',250,get_head_info()[2],__file__) #接受非负数的异常
except FuShuError as e:
print(e,type(e))
print('年龄为负数属于非法数值')
age = age * -1 except NameError:
print('变量书写异常') except:
print('程序出现异常') print(age) #with语法 '''(推荐使用with语法进行文件操作!)
#文件读取操作
#1.打开文件
fp = open('09.txt','r')
#2.读取文件
result = fp.read()
print(result)
#3.关闭文件
fp.close()
''' """
#将程序放入try except语法中
try:
# 1.打开文件
fp = open('09.txt', 'r')
# 2.读取文件
result = fp.read()
print(result) #故意报错
print(babi)
'''
#不行
# 3.关闭文件
fp.close()
''' #文件运行出错可以被OSError接受
except OSError:
print('程序运行出现问题') except NameError:
print('变量名错误')
'''
else:#不行
#3.关闭文件
fp.close()
'''
'''
finally:#不行
#3.关闭文件
fp.close()
'''
""" #with语法
try:
#1.打开文件 #3.with会监控文件的使用自动关闭
with open('09.txt','r') as fp: #相当于 fp = open('09.txt','r')
#2.读取文件
result = fp.read()
print(result) print(bibi) except OSError:
print('操作文件出错') except NameError:
print('变量不存在')
Python 错误和异常处理的更多相关文章
- Python 迭代器,错误、异常处理
迭代器 迭代器可以用来遍历字符串.列表.元组.集合.字典. myString="hello" myIter=iter(myString) ##iter()函数可以获取元素集的一个迭 ...
- Python基础、异常处理
一.概述 错误与异常概念 异常也是对象, 基于Exception类.内置异常 异常处理.流程 try/except/else 处理python或你触发的异常 try/fianlly 不管有没有异 ...
- Python 基础之 异常处理
python 基础之异常处理 说到异常处理,就得先问一下,什么是异常处理? 先来看一下,什么是异常? 异常就是:程序运行时发出的错误的信号. 异常的种类先来看一下: 一.常见的异常 Attribut ...
- Python基础---python中的异常处理
Python中的异常处理 一.什么是异常处理 python解释器检测到错误,触发异常(也允许程序员自己触发异常) 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) ...
- [Python Study Notes]异常处理
正则表达式 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理 断言(Assertions) python标准异常 ...
- Python系列之 - 异常处理
python提供的异常处理 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常 ...
- python -- 约束、异常处理、MD5
1.类的约束 1.写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束,必须重写该方法 def login(se ...
- 13.python错误和异常
一.错误和异常1.程序中的错误分为俩种:(1)语法错误:不按照语言的规则,必须在程序执行前就改正(2)逻辑错误2.异常就是程序运行时发生错误的信号,分为三部分(1)Traceback:异常追踪的信息( ...
- Python错误和异常 学习笔记
错误和异常概念 错误: 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 异常:执行过程中出现万体导致程序无法执行 1.程序遇到 ...
随机推荐
- WebSocket协议 8 问
WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持.它使用方面.应用广泛,已经渗透到前后端开发的各种场景中. 对http一问一答中二式流程 ...
- js中面向对象(创建对象的几种方式)
1.面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象 ...
- Mysqldump自定义导出n条记录
很多时候DBA需要导出部分记录至开发.测试环境,因数据量需求较小,如果原库的记录多,且表数量也多,在用mysqldump命令导出时可以添加一个where参数,自定义导出n条记录,而不必全量导出. 示例 ...
- elasticsearch 5.x 系列之五 数据导入导出
一.首先给大家发一个福利,分享一个elasticsearch 数据导出工具. esm github 源码地址: https://github.com/medcl/esm 下载编译好的对应elastic ...
- php安装php-redis扩展
下载安装php-redis扩展: 地址:https://github.com/phpredis/phpredis/ $ wget http://pecl.php.net/get/redis-3.1.2 ...
- ruby 数据类型Range
范围(Range)无处不在:a 到 z. 0 到 9.等等.Ruby 支持范围,并允许我们以不同的方式使用范围: 作为序列的范围 作为条件的范围 作为间隔的范围 作为序列的范围 (1..5) #==& ...
- stm32+lwip(一):使用STM32CubeMX生成项目
我是卓波,很高兴你来看我的博客. 系列文章: stm32+lwip(一):使用STM32CubeMX生成项目 stm32+lwip(二):UDP测试 stm32+lwip(三):TCP测试 stm32 ...
- urllib.request.urlretrieve()
urllib模块提供的urlretrieve()函数.urlretrieve()方法直接将远程数据下载到本地. urlretrieve(url, filename=None, reporthook=N ...
- ORB-SLAM 代码笔记(二)
ORB-SLAM中除了第三方库,基本没有看到使用c++11的新特性(例如别的SLAM框架中常用的智能指针,拷贝控制,泛型算法等,基本没有使用动态内存,栈内存读取速度较快),因此非常适合初学,代码很清晰 ...
- Python的异常
一.异常的常用形式 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行.一般情况下,在Python无法正常处理程序时就会发生一个异常.异常是Python对象,表示一个错误.当Pyth ...