python raise异常处理
python raise异常处理
一般最简单的异常处理是try except:
try:
f = open('test.txt')
except Exception as e:
print(e) finally:
f.close()
自己也可以用raise自定义异常:
class CustomError(Exception):
def __init__(self, ErrorInfo):
self.errorinfo = ErrorInfo def __str__(self):
return self.errorinfo ============================================
try:
code.........code
code.........code
raise CustomError("xxxx")
except CustomError as e:
print(e)
自定义异常类需要继承自Exception类。
自定义异常类需要实现__str__方法来定义需要抛出的异常信息。
raise语句主动抛出异常。
捕获异常需要通过try...except 语句,其中"except"语句必须有用相同的异常(或者直接抛出Exception)来抛出类对象。
具体事例如下:
#1.用户自定义异常类型
class TooLongExceptin(Exception): def __init__(self,Leng):
self.leng = Leng
def __str__(self):
print("姓名长度是"+str(self.leng)+",超过长度了")
#1.捕捉用户手动抛出的异常,跟捕捉系统异常方式一样
def name_Test():
try:
name = input("enter your naem:")
if len(name)>4:
raise TooLongExceptin(len(name))
else :
print(name) except TooLongExceptin,e_result: #e_result是基于TooLongExceptin类创建的实例
print("捕捉到异常了")
print("打印异常信息:",e_result) #调用函数,执行
name_Test()
==========执行结果如下:==================================================
enter your naem:aaafsdf
捕捉到异常了
Traceback (most recent call last):
打印异常信息: 姓名长度是7,超过长度了
姓名长度是7,超过长度了
File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 16, in name_Test
raise TooLongExceptin(len(name))
__main__.TooLongExceptin: <exception str() failed> During handling of the above exception, another exception occurred: Traceback (most recent call last):
File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 26, in <module>
name_Test()
File "D:/pythoyworkspace/file_demo/Class_Demo/extion_demo.py", line 22, in name_Test
print("打印异常信息:",e_result)
TypeError: __str__ returned non-string (type NoneType)
code.........code
python raise异常处理的更多相关文章
- python的异常处理及异常类定义
python的异常处理语法和大多数语言相似: try: try块的语句... except exceptiontype1 as var:#使用as语句获得本次捕获到的异常的实例var except块语 ...
- Python进阶----异常处理
Python进阶----异常处理 一丶错误和异常 错误: 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 ...
- python的异常处理机制
异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮. 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算 ...
- Python 多进程异常处理
前言 最近项目用到了Python作为网站的前端,使用的框架是基于线程池的Cherrypy,但是前端依然有一些比较‘重’的模块.由于python的多线程无法很好的利用多核的性质,所以觉得把这些比较‘重’ ...
- (Python)异常处理try...except、raise
一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: a=10 b=0 c=a/b ...
- python中异常处理--raise的使用
https://www.cnblogs.com/zhangyin6985/p/7229553.html 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常.一旦执行了rai ...
- 【】Python】异常处理try...except、raise
一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: 1 2 3 4 a=10 b= ...
- python基础-异常处理
一.错误和异常 程序中难免出现错误,而错误分成两种 1.1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if #语法错误示范二 def te ...
- python的异常处理
在所有的程序中,都会遇到异常,有些异常是代码编写的时候产生的,在前期过程中可能会直接导致程序无法运行.这一类的异常,在编写代码的时候,程序可以直接排查修改.但有些异常,是在程序运行过程中产生的,可能是 ...
- [python拾遗]异常处理
异常 异常(Exception)是因为程序的例外.违例.出错等情况而在正常控制流以外采取的行为,一般分为如下两个阶段: 1.异常发生:一个错误发生后被打印出来,称为未处理异常,而默认的处理则是自动输出 ...
随机推荐
- 一文搞懂 MySQL 日志
前言 MySQL 的日志记录了运行的各种信息,是 MySQL 事务.性能.数据容灾.异常排查等的基础.本文将介绍 MySQL 一些关键日志的作用和原理. MySQL InnoDB 引擎重要的三个日志: ...
- NOIP模拟75
前言 先吐槽一下出题人,T2 牛马数据连棵树都不是.. T3 描述不清楚.. T1 如何优雅的送分 解题思路 我考场上还真以为是个送分题,然而... 莫比乌斯反演... 对于一个数字 n 有 \(2^ ...
- python-一种去掉前后缀获取子串的方法
假设有一个字符串,其数据组成方式为:"mode_id1_str_id2",其中id1和id2为任意个数的数字,若存在mode,则id1必然也存在,否则都不存在:id2可有可没有. ...
- xv6 磁盘中断流程和启动时调度流程
首发公号:Rand_cs 本文讲述 xv6 中的一些细节流程,还有对之前文中遗留的问题做一些补充说明,主要有以下几个问题: 一次完整的磁盘中断流程 进入调度器后的详细流程 sched 函数中的条件判断 ...
- Vue学习:20.综合案例-商品列表
学而时用之,方能融会贯通! 实例:商品列表 实现功能 要求表格组件支持动态数据渲染.自定义表头和主体.标签组件需要双击显示输入框并获得焦点,可以编辑标签信息. 思路 首先是表格组件,动态渲染需要使用组 ...
- 项目管理--PMBOK 读书笔记(11)【项目风险管理】
1.风险分解结构(RBS): RBS 有两个含义,一个是资源分解结构(Resource),一个是风险分解结构(Risk). 1)技术风险 2)管理风险 3)商业风险 4)外部风险 2.核对单 核对 ...
- 为什么https要使用证书
为什么https要使用证书 什么是httpshttps不是一种新的协议,只是http的通信接口部分使用了ssl和tsl协议替代,加入了加密.证书.完整性保护的功能. 加密:共享密钥加密加密和解密公用一 ...
- Linux中expr命令
Linux中expr命令 shell中不能简简单单的加减乘除,需要使用expr.expr只能用于整数值,一般格式为 expr arg1 operator arg2 注意: 1. 运算符左右都有空格,如 ...
- 20-Docker镜像制作
查看镜像构建的历史 docker image history 26a5 #查看镜像26a5的构建历史 使用commit命令构建镜像 使用commit命令可以将容器构建成镜像. 将容器webserver ...
- FPGA案例开发手册——基于全志T3+Logos FPGA核心板
前 言 本文档主要提供评估板FPGA端案例测试方法,适用的开发环境为Windows 7 64bit和Windows 10 64bit. 本文案例基于创龙科技的全志T3+Logos FPGA核心板,它是 ...