全国服务热线:

15861139266

Python异常处理(中),苏州机器视觉培训,苏州工业机器人培训
发布时间:2024-05-13 14:37:28 点击次数:129

三、自定义异常

自定义异常是在Python中创建新的异常类型的过程,这使得你可以定义特定于你的应用程序或库的错误情况。自定义异常让你能够更清晰地表达错误的含义,并且使得异常处理更加具有可读性和可管理性。


3.1 自定义异常的创建

其实,创建自定义异常类非常简单,通常你只需要继承自Exception类(或者Python异常层次结构中的任何其他类):


class MyCustomError(Exception):

    ""“基础自定义异常类”""

    def __init__(self, message):

        super().__init__(message)

3.2 自定义异常的使用

一旦定义了自定义异常类,你就可以在代码中使用raise关键字来抛出这个异常:


def divide(a, b):

    if b == 0:

        raise MyCustomError("分母不能为0")

    return a / b


try:

    divide(10, 0)

except MyCustomError as e:

    print(f"发生了自定义错误:{e}")

3.3 其他功能

自定义异常可以包含额外的属性和方法,以便在异常发生时传递更多的错误上下文:


class InvalidInputError(Exception):

    def __init__(self, input_value, message="无效的输入"):

        super().__init__(message)

        self.input_value = input_value


try:

    raise InvalidInputError(10, "输入值不能为偶数")

except InvalidInputError as e:

    print(f"错误:{e},输入的值是:{e.input_value}")

四、Assert断言

4.1 什么是断言

断言(assert)是Python中的一种简单而强大的机制,用于设置代码的检查点,确保程序在继续执行前满足某些条件。如果条件为真,则程序继续执行;如果条件为假(即断言失败),则Python抛出AssertionError异常。


基本语法


assert condition, "Error message"

condition:要检查的条件,如果该条件为False,将引发异常。

"Error message":断言失败时显示的错误信息,它是可选的。

示例代码


assert 2 + 2 == 4, "数学出错了!"

如果2 + 2不等于4,将抛出AssertionError,并且错误信息将是"数学出错了!"。


4.2 什么时候用断言

调试:在开发过程中,断言可以用来验证代码的某些部分是否按预期工作。

def add(a, b):

    assert isinstance(a, (int, float)) and isinstance(b, (int, float)), "参数必须是数字"

    return a + b


add(1, 'a')  # 这将引发AssertionError,因为第二个参数不是数字

契约编程:断言可以作为函数契约的一部分,确保传入的参数满足特定的条件。

def divide(a, b):

    assert b != 0, "分母不能为0"

    return a / b


divide(10, 0)  # 这将引发AssertionError,因为分母为0

自动化测试:在自动化测试中,断言用来验证测试用例的预期结果。

def factorial(n):

    assert n >= 0, "输入必须是非负整数"

    if n == 0:

        return 1

    return n * factorial(n - 1)


# 测试factorial函数

assert factorial(5) == 120, "factorial测试失败"

文档:断言可以作为文档的一部分,说明函数的预期行为和参数要求。

断言是一种快速简单的方法来设置检查点,但它不应该被用来处理正常的程序错误。对于这些情况,应该使用异常处理。


立即咨询
  • 品质服务

    服务贴心周到

  • 快速响应

    全天24小时随时沟通

  • 专业服务

    授权率高,保密性强

  • 完善售后服务

    快速响应需求,及时性服务

直播课程
软件开发基础课程
上位机软件开发课
机器视觉软件开发课
专题课
联系方式
电话:15861139266
邮箱:75607082@qq.com
地址:苏州吴中区木渎镇尧峰路69号
关注我们

版权所有:江苏和讯自动化设备有限公司所有 备案号:苏ICP备2022010314号-1

技术支持: 易动力网络