python捕获异常

kri*_*itx -1 python linux

我正在运行curl命令来检查网站的状态:

try:
    connectionTest = subprocess.Popen([r"curl --interface xx.xx.xx.xx http://www.yahoo.com"], shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
    cstdout,cstderr = connectionTest.communicate()
    if cstdout:
        #print cstdout
        status = "OK"
    elif cstderr:
        #print cstderr
        status = "PROBLEM"
except:
    e = sys.exc_info()[1]
    print "Error: %s" % e
Run Code Online (Sandbox Code Playgroud)

代码工作正常,除了try:except语句没有正确捕获异常,下面是接口关闭时脚本的输出,现在我想在except语句中捕获第一行...而不是产生......这可能吗?

SIOCSIFFLAGS: Cannot assign requested address

PROBLEM
Run Code Online (Sandbox Code Playgroud)

Equ*_*oid 5

没有异常抛出.您可以检查返回代码并在非零时抛出异常:

import sys, subprocess
try:
    connectionTest = subprocess.Popen([r"curl --interface 1.1.1.1 http://www.yahoo.com"], shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE)
    cstdout,cstderr = connectionTest.communicate()
    if connectionTest.returncode:
        raise Exception("Curl returned %s"%connectionTest.returncode)
    if cstdout:
        #print cstdout
        status = "OK"
    elif cstderr:
        #print cstderr
        status = "PROBLEM"
except:
    e = sys.exc_info()[1]
    print "Error: %s" % e
Run Code Online (Sandbox Code Playgroud)