精华内容
下载资源
问答
  • 2020-12-21 15:43:45

    一. 抛出异常

    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

    更多相关内容
  • 1. 抛出异常 1.1 raise raise 指定要抛出异常。 对应参数必须是异常的实例或是异常的类(Exception) 例: def fun(x): if x > 5: raise Exception(f"x 不能大于 5,x={x}") """ Traceback (most recent...

    1. 抛出异常

    1.1 raise

    • raise 指定要抛出的异常。
    • 对应参数必须是异常的实例或是异常的类(Exception

    例:

    def fun(x):  
        if x > 5:  
            raise Exception(f"x 不能大于 5,x={x}")
    
    """
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 3, in fun
    Exception: x 不能大于 5,x=7
    """
    

    1.2 assert

    assert condition
    # condition 为真,不做任何事情
    # condition 为假,抛出AssertionError异常
    # 等价于:
    if not condition:  
        raise AssertionError()
    # ****************************************
    assert condition, "错误原因"
    ==> 
    if not condition:
    	raise AssertionError("错误原因")
    

    2. 自定义异常

    • 自定义类异常必须继承 Exception

    自定义异常:

    class MySQLError(Exception):
        def __init__(self, error_info):
            super(MySQLError, self).__init__(error_info)
            self.error_info = error_info
     
        def __str__(self):
            return self.error_inf
    

    使用自定义异常:

    try:
        raise MySQLError('异常')
    except MySQLError as e:
        print(e)
    
    展开全文
  • Python 使用 raise 语句抛出一个指定的异常。 raise 唯一的一个参数指定了要被抛出异常。 它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。 如下: x = 10 if x > 5: raise Exception('x 不...

    一、主动抛出异常 raise

    Python 使用 raise 语句抛出一个指定的异常。

    raise 唯一的一个参数指定了要被抛出的异常。

    它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。

    如下:

    x = 10
    if x > 5:
        raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
    

    结果如下:

    Traceback (most recent call last):
      File "test.py", line 3, in <module>
        raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
    Exception: x 不能大于 5。x 的值为: 10
    

    如果你只想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。

    try:
        raise NameError('HiThere')
    except NameError:
        print('An exception flew by!')
        raise
    

    二、自定义异常

    自定义类必须继承Exception,自定义异常如下:

    class MySQLError(Exception):
        def __init__(self, error_info):
            super(MySQLError, self).__init__(error_info)
            self.error_info = error_info
    
        def __str__(self):
            return self.error_info
    

    使用如下:

    try:
        raise MySQLError('异常')
    except MySQLError as e:
        print(e)
    

    结束!

    展开全文
  • 在开发中,除了代码执行出错Python解释器会抛出异常之外,还可以根据应用程序特有的业务需求主动抛出异常。 设计一个人类,有名字(name)和年龄(age)两个属性,按照业务需求,如果年龄(age)的范围在(0,150]完成...

    在开发中,除了代码执行出错Python解释器会抛出异常之外,还可以根据应用程序特有的业务需求主动抛出异常。

    设计一个人类,有名字(name)和年龄(age)两个属性,按照业务需求,如果年龄(age)的范围在(0,150]完成对象的创建,反之将抛出异常,终止程序。

    # 自定义一个人类
    class Person(object):
    
        def __init__(self, name, age):
            # 如果年龄满足需求
            if  0 < age <= 150:
                self.name = name 
                self.age = age
            else:
            # 如果条件不满足需求
            # 将抛出异常,终止程序
                pass
    

    Python中提供了一个Exception异常类,Exception异常类是所有异常类的父类,在开发时,如果满足特定业务需求时,希望抛出异常,可以如下操作:

    • 创建一个继承于Exception异常类的自定义异常对象;
    • 使用 raise 关键字抛出自定义异常对象;
    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    # 自定义异常类
    class AgeError(Exception):
    
        def __init__(self, age):
            # 保存年龄,进行私有
            self.__age = age
    
        # 设计异常的信息描述
        def __str__(self):
            return "传入的年龄超出的正常范围:age=%d" % self.__age
    
    # 自定义一个人类
    class Person(object):
    
        def __init__(self, name, age):
            # 如果年龄满足需求
            if  0 < age <= 150:
                self.name = name
                self.age = age
            else:
            # 如果条件不满足需求
            # 将抛出异常,终止程序
                raise AgeError(age)
    
    # 测试
    xm = Person("小明", 151)
    # 控制台输出:
    __main__.AgeError: 传入的年龄超出的正常范围:age=151
    

    例子:

    '''
    遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    # 自定义异常类
    class AgeError(Exception):
    
        def __init__(self, age):
            self.__age = age
    
        # 重写str方法
        def __str__(self):
            return "您传入的年龄不满足需求:age=%d" % self.__age
    
    
    # 自定义一个人类
    class Person(object):
    
        def __init__(self, name, age):
            # 判断年龄
            if 0 < age <= 150:
                self.name = name
                self.age = age
            else:
                # 抛出自定义异常
                raise AgeError(age)
    
    
    xm = Person("小明", 160)
    
    展开全文
  • python中捕捉异常模块try/except,其中python中有一些自定义异常,具体如下 AttributeError 调用不存在的方法引发的异常 EOFError 遇到文件末尾引发的异常 ImportError 导入模块出错引发的异常 IndexError 列表月...
  • 1、异常的语法 1)完整的异常处理语法格式: try: print(10/0) except NameError as e: print('出现 NameError 异常') except ZeroDivisionError as e: print('出现 ZeroDivisionError 异常') except ...
  • 使用raise抛出异常 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。 try: s = None if s is None: print "s 是空对象" raise Name...
  • python使用raise抛出自定义异常

    千次阅读 2019-01-25 19:28:00
    1.显然下面这段代码中'索引越界了...'是这样被传递的 接下来让我们看一下具体的实现 练习1:判断输入字符串的长度,如果小于指定的长度就报错 ...class ShortInputException(Exception): ... def __init__(self, ...
  • 自定义抛出异常raise 自定义异常类 自定义抛出异常函数–raise 将信息以报错的形式抛出 用法: raise异常类型(message) 参数: message : 错误信息 自定义异常类 继承基类—Exception 在构造函数中定义错误...
  • 异常为: AssertionError: what?! 方法二 常用于assert失败后推断导致的报错 try: assert 1 > 4 except Exception as e: raise IOError 或是自定义一个报错: class MyExcept(Exception): def __init__(self...
  • 浅谈python抛出异常、自定义异常, 传递异常,python抛出一. 抛出异常Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一...
  • 在上一章我们学习了 异常的三个关键字,分别是try、except 以及 finally。...首先抛出异常的是 Python 的解释器,它在脚本执行的时候发现了错误并将其抛出,而如何抛出的呢?捕获的异常优势如何定义的呢?
  • 2. raise后的语句是不会被执行了,因为已经抛出异常,控制流将会跳到异常捕捉模块。 3. except 语句可以一个except后带多个异常,也可以用多个语句捕捉多个异常,分别做不同处理。 4. except语句捕捉的异常如果没有...
  • 前言有时候python自带异常不够用,如同java,python也可以自定义异常,并且可以手动抛出。注意,自定义异常只能由自己抛出python解释器是不知道用户自定义异常是什么鬼的。raise语句主动抛出异常。格式:主动抛出...
  • 等问题产生异常,这些异常可以在程序内部通过捕获异常让程序继续执行,也可以选择通过raise抛出异常让程序终止运行,如果不进行异常处理,异常最终会被python解释器捕获并终止运行程序 2、基本语法 1、try......
  • python自定义异常和主动抛出异常
  • python自定义异常

    千次阅读 2021-08-16 17:08:07
    python自定义异常 raise ​ python的异常有两种,一种是python自带的异常,当我们写的代码在语法或其他功能的调用上有误时,如果没有...​ 凡是自定义异常就绕不开一个关键词——raise,其作用就是主动抛出异常。ra
  • python中实现自定义异常抛出信息
  • 本文链接:https://blog.csdn.net/qq_40877371/article/details/99710830Python3 入门之抛出自定义异常在Pyhton开发中,我们可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是一个异常的实例...
  • 日常开发中,当系统提供的异常类型不能满足开发的需求时,就需要自己创建一个新的异常类来拥有自己的异常。 自定义异常类继承自 Exception 类,可以直接继承,或者间接继承。
  •  本文通过两种方法对Python 自定义异常进行讲解,第一种:创建一个新的exception类来拥有自己的异常,第二种:raise 唯一的一个参数指定了要被抛出的异常 1、可以通过创建一个新的exception类来拥有自己的异常。...
  • python自定义异常

    2020-12-30 08:33:22
    1.抛出自定义的异常你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类。我们自定义异常的原因是:因为系统提供的异常类,无法描述我的异常。我需要自定义一些异常...
  • python自定义异常

    千次阅读 2022-03-19 22:57:19
    python自定义异常

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,828
精华内容 14,331
关键字:

python抛出自定义异常