Python - 捕获子进程异常
我正在使用 os.popen(cmd) 来连接一个数据库,使用的是 isql。这是在 Unix 系统上,Python 版本是 2.3.4。我想实现错误处理,想知道有没有什么有效的方法可以捕捉到调用的子进程(比如这个)的错误或异常,而不需要处理 stderr 等等。
谢谢,
Dan
2 个回答
2
如果你是这样使用 subprocess 的话,你可以这样做:
sql_stdout_stderr = subprocess.Popen(sql_command, stdout=subprocess.PIPE)
#communicate returns a tuple
stdout, stderr = sql_stdout_stderr.communicate()
这样做可以让你获取标准输出和错误信息。如果错误信息(stderr)里有内容,就处理错误;如果没有内容,就不需要做任何事情。
祝你好运!
补充:我刚看到你说你不想处理错误信息,我真的觉得你应该使用 subprocess,因为它可以帮你把所有事情处理得很整齐,希望这样能让管理变得更简单。
0
不,您得到的只是:
- 从
popen
返回的所有内容 - 当您使用
pclose
关闭进程时,子进程的退出代码。