为什么会出现此线程错误?

| 我有以下代码:
import urllib2
import thread

a = 0
def workers():

    while 1:

        a+=1
        silva = urllib2.urlopen(\'http://en.dilandau.eu/download_music/said-the-whale-\'+str(a)+\'.html\')
        si = silva.read()
        if \'var playlist\' not in si:
            print a
            break

thread.start_new_thread(workers,())


while 1:
    print \'---\'
但我得到一个错误:
Unhandled exception in thread started by <function workers at 0x0000000002B1FDD8>
有谁知道为什么我会收到此错误?     
已邀请:
        我运行了一个简单的代码版本,除了未处理的异常消息外,还看到了堆栈跟踪。它应该可以帮助您找到问题所在。 您应该考虑一些改进。首先,有一个高级别的库over2 over,推荐使用的库不超过
thread
。其次,您正在忙于
while 1
循环!最好使用
join()
。通常,这也有助于在您的工作程序代码周围放置异常处理程序。例如,
import threading
import time
import traceback

def worker():
    try:
        for i in range(5):
            print i
            time.sleep(0.5)
        assert 0, \'bad\'
    except:
        traceback.print_exc()

t = threading.Thread(target=worker)

t.start()
t.join()

print \'completed\'
    
        您在函数中分配的是\“ a \”,因此它默认为函数的本地变量。 例外可能是:
UnboundLocalError: local variable \'a\' referenced before assignment
    
        如果只是为了消除错误,请在worker()函数中添加“ 8”     

要回复问题请先登录注册