欢迎访问宙启技术站
智能推送

【Python函数错误处理】Python函数错误处理技巧和使用范例

发布时间:2023-05-21 22:53:20

Python是一种非常强大的编程语言,但在编程过程中总会出现各种各样的错误,这就需要我们使用错误处理技巧来解决问题。Python的错误处理较为简单,主要是通过try...except语句来捕捉错误并进行处理。本文将介绍Python函数错误处理技巧和使用范例。

一、Python函数错误处理技巧

1. try...except...finally语句

try...except...finally语句是Python的错误处理语句,它的基本格式如下:

try:

        # 可能会出错的代码

except 错误类型:

        # 出现错误时执行的代码

finally:

        # 不管有没有错误都会执行的代码

2. 自定义错误类型

Python中有很多内置的错误类型,但有时我们需要自定义错误类型,这样可以更好地判断错误类型。示例代码:

class MyError(Exception):

        def __init__(self, message):

                super().__init__(message)

        def __str__(self):

                return self.message

3. assert语句

assert语句用来判断一个条件是否成立,如果不成立则会抛出AssertionError异常,并显示指定的错误信息。示例代码:

def get_score(score):

        assert isinstance(score, int), '分数必须是整数'

        if score < 0 or score > 100:

                raise ValueError('分数必须在0-100之间')

        if score < 60:

                return 'D'

        elif score < 70:

                return 'C'

        elif score < 80:

                return 'B'

        else:

                return 'A'

print(get_score(80))

print(get_score('80'))

4. traceback模块

Python错误信息中包含了调用关系和行号信息,但有时需要更加详细的信息来帮助我们找出错误,这就需要使用traceback模块。示例代码:

import traceback

def foo():

        return 1 / 0

try:

        foo()

except Exception:

        traceback.print_exc()

二、Python函数错误处理使用范例

1. 求两个数的商

def divide(dividend, divisor):

        try:

                result = dividend / divisor

        except ZeroDivisionError:

                print('发生除数为0异常')

                return None

        else:

                return result

print(divide(4, 0))

print(divide(4, 2))

2. 求一个列表的平均值

def average(numbers):

        try:

                result = sum(numbers) / len(numbers)

        except ZeroDivisionError:

                print('列表不能为空')

                return None

        except TypeError:

                print('列表中元素必须为数字')

                return None

        else:

                return result

print(average([1, 2, 3, 4]))

print(average([]))

print(average(['a', 'b', 'c']))

3. 自定义错误类型

class NegativeNumberError(Exception):

        pass

def do_something(num):

        if num < 0:

                raise NegativeNumberError('数字不能为负数')

        else:

                print('数字为正数')

try:

        do_something(-1)

except NegativeNumberError as e:

        print(e)

finally:

        print('结束')

4. assert语句

def get_score(score):

        assert isinstance(score, int), '分数必须是整数'

        if score < 0 or score > 100:

                raise ValueError('分数必须在0-100之间')

        if score < 60:

                return 'D'

        elif score < 70:

                return 'C'

        elif score < 80:

                return 'B'

        else:

                return 'A'

print(get_score(80))

print(get_score('80'))

总之,Python是一种非常强大的编程语言,但在编程过程中总会出现各种各样的错误,这就需要我们使用错误处理技巧来解决问题。本文介绍了Python函数错误处理技巧和使用范例,希望能帮助大家更好地掌握Python编程。