怎么解决这种超时问题中的报错

my_test函数执行需要4s,设置的超时时间大于4s,因此子进程正常执行;若设置my_test函数执行时间大于5s,则报错,代码中尝试了通过捕获异常来让程序正常运行退出,但超时异常时发生在子进程中的,因此捕获异常失败,此时的报错见图
# func_set_timeout作为装饰器使用,来作为目标函数的超时处理方式
import time
import os
from func_timeout import func_set_timeout


@func_set_timeout(5)
def my_test(name):
    print('子进程运行中,name={},pid={}'.format(name, os.getpid()))
    time.sleep(4)            
    print('子进程已经结束')


if __name__ == '__main__':
    print('父进程:{}'.format(os.getpid()))
    try:
        p = Process(target=my_test, args=('test', ))
        p.start()
    except TimeoutError as e:
        print('子程序超时')
# 执行以上程序输出:
# 父进程:29908
# 结束
# 子进程运行中,name=test,pid=40280
# 子进程已经结束

# 说明:my_test函数执行需要4s,设置的超时时间大于4s,因此子进程正常执行;若设置my_test函数执行时间大于5s,则报错,代码中尝试了通过捕获异常来让程序正常运行退出,但超时异常时发生在子进程中的,因此捕获异常失败,此时的报错见图1。
怎么解决报错

那你把try写在子进程的函数里呀,为什么写主进程里了

写在my_test函数里面吗?我试了,还是同样的报错