Python 无法捕获子进程的操作系统错误

Python 无法捕获子进程的操作系统错误,python,python-3.x,error-handling,subprocess,try-except,Python,Python 3.x,Error Handling,Subprocess,Try Except,有人知道你是否能用python捕捉操作系统错误吗。我正在编写一个映射网络驱动器的脚本。 如果最终用户键入的路径名不存在,则不会显示错误,这可能会成为一个问题。 我正在使用python 3.6版的子流程模块以及pycharm IDE。 如果映射到不存在的位置,则会出现以下错误“发生系统错误53。未找到网络路径。” 最后,我尝试使用OSError、Exception和BaseException捕捉错误。我使用的每一个都不会返回任何错误消息 下面是我正在运行的脚本的一个示例 def StoreInfo

有人知道你是否能用python捕捉操作系统错误吗。我正在编写一个映射网络驱动器的脚本。 如果最终用户键入的路径名不存在,则不会显示错误,这可能会成为一个问题。 我正在使用python 3.6版的子流程模块以及pycharm IDE。 如果映射到不存在的位置,则会出现以下错误“发生系统错误53。未找到网络路径。”

最后,我尝试使用OSError、Exception和BaseException捕捉错误。我使用的每一个都不会返回任何错误消息

下面是我正在运行的脚本的一个示例

def StoreInfo():
receiving = input("Enter receiving: ")
try:
    subprocess.call(r'net use y: \\' + receiving + '\\act\\rto\\transent', shell=True) #timeout=30
except OSError:
    #print("An unexpected error:" , sys.exc_info()[0])
    print(sending+"'s path does not exit!")
StoreInfo()

Python»文档

试试看:
retcode=call(“mycmd”+“myarg”,shell=True)
如果retcode<0:
打印>>sys.stderr,“子项被信号终止”,-retcode
其他:
打印>>sys.stderr,“返回的子对象”,重新编码
除O错误为e外:
打印>>sys.stderr,“执行失败:”,e
Python»文档

试试看:
retcode=call(“mycmd”+“myarg”,shell=True)
如果retcode<0:
打印>>sys.stderr,“子项被信号终止”,-retcode
其他:
打印>>sys.stderr,“返回的子对象”,重新编码
除O错误为e外:
打印>>sys.stderr,“执行失败:”,e

这是因为没有提出python例外。“发生系统错误53。未找到网络路径”-如果使用
子进程,则是windows错误,而不是Python。检查调用
它还应为您提供进程的返回代码,大多数以0表示成功,任何其他数字表示各种错误情况,但@YaroslavSurzhikov是正确的,这不会引发python错误,这就是您无法捕获它的原因。这是因为不会引发python异常。“发生系统错误53。未找到网络路径”-如果使用
子进程,则是windows错误,而不是Python。检查调用
它还应为您提供进程的返回代码,大多数以0表示成功,任何其他数字表示各种错误情况,但@YaroslavSurzhikov是正确的,这不会引发python错误,这就是您无法捕获它的原因。
try: 
    retcode = call("mycmd" + " myarg", shell=True) 
    if retcode < 0: 
        print >>sys.stderr, "Child was terminated by signal", -retcode 
    else: 
        print >>sys.stderr, "Child returned", retcode 
except OSError as e: 
    print >>sys.stderr, "Execution failed:", e