美文网首页程序员
Python 在被调用函数中捕获参数异常

Python 在被调用函数中捕获参数异常

作者: xiaojieluo | 来源:发表于2017-10-17 01:01 被阅读0次

一般情况下, python 无法捕获被调用函数的参数异常, 但是用装饰器可以实现此功能.

先定义一个 check 装饰器:

import traceback
import sys

def check(method):
    '''
    check argument
    '''
    def wrapper(*args, **kw):
        try:
            return method(*args, **kw)
        except TypeError as e:
            print("I catch you!")
            stack = traceback.format_list(traceback.extract_stack())
            for line in stack:
                print('>> '+line.strip())
            print(sys.exc_info())

    return wrapper

再把要被调用的函数加上装饰器:

@check
def hello(msg):
        print(msg)

hello()

输出如下, 可以看到, check 装饰器已经捕获到 TypeError 异常了

test.png

相关文章

  • Python 在被调用函数中捕获参数异常

    一般情况下, python 无法捕获被调用函数的参数异常, 但是用装饰器可以实现此功能. 先定义一个 check ...

  • python:函数说明

    Python: 函数参数魔法 2016-12-01 函数参数 在 Python 中,定义函数和调用函数都很简单,但...

  • iOS APP中捕获异常

    在入口类方法中调用函数捕捉程序异常行为:代码如下 捕获异常的方法,如下所示:

  • Python3函数

    一、基本 1、函数定义:def 函数名(参数):代码1......2、函数调用:函数名(参数)注:在Python中...

  • Python - 2017/01/28-函数

    调用python内置函数 函数名(参数) 即可调用python内置函数 help(函数名) 返回python对于函...

  • 不论BAT大神,还是开发小担当都必须会的Python知识点

    Python函数示例:调用,缩进,参数和返回值 什么是Python中的函数? Python中的函数用于在程序中的多...

  • 异常捕获

    自动抛出异常:abort(状态码) 捕获异常处理:errorhandler(状态码),定义的函数中要包含一个参数,...

  • python学习笔记 - (2)函数

    定义函数格式:def 函数名(参数):代码1代码2... 调用函数格式:函数名(参数) /// python中,函...

  • Python实战:函数

    Python中函数的声明格式: 例如: 函数的调用: 关于位置参数、关键字参数、可变参数和不可变参数 位置参数:参...

  • Python中的函数

    Python中的函数 定义/调用 注意Python中没有JS一样的声明前置,所以定义必须要在调用之前 函数中的参数...

网友评论

    本文标题:Python 在被调用函数中捕获参数异常

    本文链接:https://www.haomeiwen.com/subject/harruxtx.html