2012-06-01 48 views
1

我在GNURadio程序中使用Python time.sleep()函數。但是,儘管我提供了一個浮點參數,但代碼會運行到意外的浮點異常。請從下面的相關代碼段(請忽略調試「和合」的:-)):Python time.sleep()運行到浮點異常

while not ack and timeout < 5: #FIXME: Hard-coded timeout interval 
    print "Hehe5" 
    timeout+=1 
    print "Hehe6" 
    time.sleep(0.5) 
    print "Hehe7" 
    with lock: 
     ack=recvd_prev_ack 
    print "Hehe8" 

這給出了以下的輸出:

Sent pktno= 0 
Hehe 
Hehe1 
Hehe2 
Hehe3 
Hehe4 
Hehe5 
Hehe6 
Floating point exception 

所以錯誤的點真的是時間。睡覺()。有人可以解釋一下這裏可能會發生什麼嗎?我的Python版本是2.7.1。

感謝和問候, Dhrubo

+0

有趣......認爲你可以從控制檯發佈實際錯誤。我希望它有更多的細節,這將是有用的 – inspectorG4dget

+0

你的縮進是錯誤的。請修復它。 –

回答

3

這是怎麼回事這裏是你的程序有螺紋,而浮點異常在另一個線程中發生的(不是你想)。

+0

感謝您的回覆。我找到了錯誤的根源。這確實是由於第二個正在運行的線程。 :-) – dhruboroy29

+0

我認爲你不會得到一個回溯,因爲錯誤不會發生在你的主線程中。也許看到這裏如何獲得其他線程的追蹤:http://stackoverflow.com/questions/875453/printing-daemonic-thread-exceptions-in-python – Gerrat