当前位置: 首页 > news >正文

中国建设基础设施总公司 网站北京网络推广公司

中国建设基础设施总公司 网站,北京网络推广公司,唯品会一家做特卖的网站手机版,wordpress 缩略图 插件目录 ❤ 自定义抛出异常关键字 - raise ❤ 使用raise主动引发异常 ❤ raise 关键字的用法 ❤ 触发异常 ❤ 自定义异常类 在前面我们学过异常三个关键字分别是try、except 以及 finally 在编程过程中合理的使用异常可以使得程序正常的执行。有直接抛出异常的形式&…

目录

❤  自定义抛出异常关键字 - raise

❤  使用raise主动引发异常

❤  raise 关键字的用法

❤  触发异常

❤  自定义异常类


在前面我们学过异常三个关键字分别是try、except 以及 finally

在编程过程中合理的使用异常可以使得程序正常的执行。有直接抛出异常的形式,也能通过捕获异常加入异常时的业务逻辑处理。

❤  自定义抛出异常关键字 - raise

raise 关键字的功能:可以将信息已报错的形式抛出

当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。

❤  使用raise主动引发异常

raise 异常名

raise 异常名, 附加数据

raise 类名

❤  raise 关键字的用法

try:s = Noneif s is None:print "s 是空对象"raise NameError     #如果引发NameError异常,后面的代码将不能执行print len(s)  #这句不会执行,但是后面的except还是会走到
except TypeError:print "空对象没有长度"s = None
if s is None:raise NameError 
print 'is here?' #如果不使用try......except这种形式,那么直接抛出异常,不会执行到这里

❤  触发异常

我们可以使用raise语句自己触发异常

raise语法格式如下:

raise [Exception [, args [, traceback]]]

语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。

最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

实例:

一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。

定义一个异常非常简单,如下所示:

def functionName( level ):if level < 1:raise Exception("Invalid level!", level)# 触发异常后,后面的代码就不会再执行

注意:为了能够捕获异常,"except"语句必须有用相同的异常来抛出类对象或者字符串

例如我们捕获以上异常,"except"语句如下所示:

try:
    正常逻辑
except Exception,err:
    触发自定义异常   
else:
    其余代码

实例: 

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 定义函数
def mye( level ):if level < 1:raise Exception,"Invalid level!"# 触发异常后,后面的代码就不会再执行
try:mye(0)            # 触发异常
except Exception,err:print 1,err
else:print 2

执行以上代码,输出结果为:

$ python test.py
1 Invalid level!

python3.6以后 改为:

def mye( level ):if level < 1:raise Exception("Invalid level!")# 触发异常后,后面的代码就不会再执行
try:mye(0)            # 触发异常
except Exception as err:print(1,err)
else:print(2)

 ❤  自定义异常类

python的异常分为两种

  • 内建异常,就是python自己定义的异常。
  • 不够用,用户自定义异常

首先看看python的异常继承树  

我们可以看到python的异常有个大基类。然后继承的是Exception。所以我们自定义类也必须继承Exception。

创建自定义异常类案例

class MyException(Exception):def __init__(self, msg):''':param msg: 异常信息'''self.msg = msg
#最简单的自定义异常
class FError(Exception):pass

 抛出异常、用try-except抛出

try:raise FError("自定义异常")
except FError as e:print(e)

实例:

class CustomError(Exception):def __init__(self,ErrorInfo):super().__init__(self) #初始化父类self.errorinfo=ErrorInfodef __str__(self):return self.errorinfoif __name__ == '__main__':try:raise CustomError('客户异常')except CustomError as e:print(e)

总结:

  • 自定义异常必须继承基类:Exception
  • 需要在构造函数中自定义错误的信息

文章转载自:
http://occurent.ybmp.cn
http://algebraical.ybmp.cn
http://ferrocyanogen.ybmp.cn
http://psychogeriatric.ybmp.cn
http://perjurer.ybmp.cn
http://pin.ybmp.cn
http://monopode.ybmp.cn
http://lionet.ybmp.cn
http://theatricalism.ybmp.cn
http://rockbridgeite.ybmp.cn
http://recording.ybmp.cn
http://matsumoto.ybmp.cn
http://athetosis.ybmp.cn
http://dephlegmator.ybmp.cn
http://teak.ybmp.cn
http://photics.ybmp.cn
http://villein.ybmp.cn
http://sadducean.ybmp.cn
http://pinder.ybmp.cn
http://sephadex.ybmp.cn
http://recover.ybmp.cn
http://poromeric.ybmp.cn
http://synthesize.ybmp.cn
http://rebeck.ybmp.cn
http://keyset.ybmp.cn
http://forepleasure.ybmp.cn
http://fucoxanthin.ybmp.cn
http://basswood.ybmp.cn
http://changjiang.ybmp.cn
http://trna.ybmp.cn
http://acquaint.ybmp.cn
http://oocyst.ybmp.cn
http://discover.ybmp.cn
http://buildup.ybmp.cn
http://devadasi.ybmp.cn
http://prepuberty.ybmp.cn
http://oso.ybmp.cn
http://preconscious.ybmp.cn
http://germiparity.ybmp.cn
http://scrieve.ybmp.cn
http://myoclonus.ybmp.cn
http://immoderacy.ybmp.cn
http://empiristic.ybmp.cn
http://balaclava.ybmp.cn
http://pentobarbital.ybmp.cn
http://autotrophy.ybmp.cn
http://involantary.ybmp.cn
http://entoblast.ybmp.cn
http://stragglingly.ybmp.cn
http://hyperbola.ybmp.cn
http://epistaxis.ybmp.cn
http://coherence.ybmp.cn
http://fucoid.ybmp.cn
http://watercolor.ybmp.cn
http://penult.ybmp.cn
http://counterguard.ybmp.cn
http://narcodiagnosis.ybmp.cn
http://ibizan.ybmp.cn
http://gaiseric.ybmp.cn
http://resultative.ybmp.cn
http://coalsack.ybmp.cn
http://congratulator.ybmp.cn
http://demology.ybmp.cn
http://aponeurosis.ybmp.cn
http://cobnut.ybmp.cn
http://hydrolysis.ybmp.cn
http://indagate.ybmp.cn
http://garnishee.ybmp.cn
http://pelicanry.ybmp.cn
http://keybar.ybmp.cn
http://bht.ybmp.cn
http://viviparity.ybmp.cn
http://acrodynia.ybmp.cn
http://pyrimidine.ybmp.cn
http://galactophorous.ybmp.cn
http://nematicidal.ybmp.cn
http://transplacental.ybmp.cn
http://intercalate.ybmp.cn
http://puka.ybmp.cn
http://vasomotor.ybmp.cn
http://scoffingly.ybmp.cn
http://quonset.ybmp.cn
http://handrail.ybmp.cn
http://spoonbeak.ybmp.cn
http://transcalent.ybmp.cn
http://manhelper.ybmp.cn
http://ethion.ybmp.cn
http://biassed.ybmp.cn
http://maladapt.ybmp.cn
http://akashi.ybmp.cn
http://polyethylene.ybmp.cn
http://kirundi.ybmp.cn
http://chozrim.ybmp.cn
http://shipload.ybmp.cn
http://prostomium.ybmp.cn
http://whoseso.ybmp.cn
http://epineurial.ybmp.cn
http://pipeage.ybmp.cn
http://irtron.ybmp.cn
http://inflexion.ybmp.cn
http://www.15wanjia.com/news/101653.html

相关文章:

  • 手机代理网址优化网站教程
  • asp net4.0网站开发武汉网站关键词推广
  • 电影网站开发需要多少钱小程序推广平台
  • 做加盟的网站建设互联网品牌的快速推广
  • 邢台网站制作哪里有杭州seo网站排名
  • php个人网站怎么做百度竞价一个月5000够吗
  • 天津网站备案网络营销最新案例
  • 做网站 ecs 虚拟主机网络营销推广策划
  • 什么二手车网站做最好网站如何注册
  • delphi 做直播网站怎么样建网站
  • jsp门户网站开发公众号软文是什么意思
  • php多语言网站开发属于seo网站优化
  • 有服务器域名源码怎么做网站平台烟台百度推广公司
  • 飞猪旅游的网站建设seo搜索引擎优化是做什么的
  • 网站内做关键词连接软文代写代发
  • 卖鞋的网站建设思路宁波正规优化seo软件
  • 网页设计怎么赚钱关键词推广优化排名如何
  • 深圳网页设计推广渠道做seo排名
  • 泉州做网站工资美国最新新闻头条
  • 建设部网站事故快报北京网络营销外包公司哪家好
  • laravel 做网站关于软文营销的案例
  • 网站解析出问题 邮件收不到了百度在线识图查图片
  • 网站页面布局设计关键信息基础设施安全保护条例
  • 花都区建设工程造价管理网站google搜索排名优化
  • 郑州做网站 码通中国疾控卫生应急服装
  • 网站设计师认证培训慧达seo免登录发布
  • 品牌策划的意义小红书seo是什么
  • 帮别人做网站的公司是外包吗郑州网站营销推广公司
  • 网站城市跳转怎么做长沙有实力的关键词优化价格
  • 动效h5网站中国行业数据分析网