簡體   English   中英

導致打印失敗的錯誤異常 - python2

[英]Error exception causing print to fail - python2

這是我的代碼中的一個片段。 出於某種原因,它根本不打印第二行說“破解需要10秒”或其他什么,但這第一位說密碼發現:確實有效......為什么?

def connect(host, user, password, release):
    global Found
    global Fails
    global startTime

    try:
        s = pxssh.pxssh()
        s.login(host, user, password)
        print '[+] Password Found: ' + password
        print 'Cracking the password took' + datetime.now()-startTime + 'seconds.'
    Found = True

    except Exception, e:
        if 'read_nonblocking' in str(e):
        Fails += 1
            time.sleep(5)
            connect(host, user, password, False)
    elif 'synchronize with original prompt' in str(e):
        time.sleep(1)
        connect(host, user, password, False)

問題可能是您沒有設置startTime ,但是您通過過度廣泛的異常處理來掩蓋它。 刪除try/except ,選擇一些其他異常來捕獲,或者只是在異常處理程序中包含一個bare raise命令,你應該看到一個NameError,因為沒有初始化。 修復它,你的代碼有更多的機會。

您正在嘗試連接兩個不同的東西( datetimestr ),嘗試將datetime轉換為str:

def connect(host, user, password, release):
    global Found
    global Fails
    global startTime

    try:
        s = pxssh.pxssh()
        s.login(host, user, password)
        print '[+] Password Found: ' + password
        print 'Cracking the password took' + str(datetime.now()-startTime) + 'seconds.'
        Found = True

    except Exception, e:
        if 'read_nonblocking' in str(e):
            Fails += 1
            time.sleep(5)
            connect(host, user, password, False)
        elif 'synchronize with original prompt' in str(e):
            time.sleep(1)
            connect(host, user, password, False)

此外,你不應該陷入所有類型的Exception ,只需要你需要的那些。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM