数据价值-DataValues

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 492|回复: 0

[python] 浅谈python抛出异常、自定义异常, 传递异常,python抛出

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
39797
发表于 2017-3-3 13:22:56 | 显示全部楼层 |阅读模式
浅谈python抛出异常、自定义异常, 传递异常,python抛出,
,
一. 抛出异常,
Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。,
raise 语句,
Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:,import traceback
def throw_error():
  raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
  print("飞天猪")
  
throw_error()
,
#运行结果:,'''Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\systray.py", line 7, in
  throw_error()
File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error
  raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
Exception: 抛出一个异常'''
,
raise关键字后面是抛出是一个通用的异常类型(Exception),一般来说抛出的异常越详细越好,
二.传递异常:,
捕捉到了异常,但是又想重新引发它(传递异常),可以使用不带参数的raise语句即可:,class MufCalc(object):
  m = False
  def calc(self,exp):
    try:
      return eval(exp)
    except ZeroDivisionError:
      if self.m:
        print("cool")
      else:
        raise
app = MufCalc()
app.calc(2/0)
,
三.自定义异常类型:,
Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:,class MyError(Exception):
  pass
,,
转载请注明:数据分析 » 浅谈python抛出异常、自定义异常, 传递异常,python抛出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|DataValues ( 赣ICP备16006919号-3 点击这里给我发消息 DataValues

GMT+8, 2019-2-19 21:52 , Processed in 0.101603 second(s), 32 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表