由<function indexing =“”at =“”>启动的线程中的未处理异常

时间:2015-06-15 22:25:04

标签: python multithreading information-retrieval

这是引发错误的函数。

def indexing(stem, stopwords):
 result = sort()
 if os.path.exists('mem_F_F') == False:
     fileName = ''
     if stem == False and stopwords == False:
         fileName = 'mem_F_F'
     elif stem == False and stopwords == True:
         fileName = 'mem_F_T'
     elif stem == True and stopwords == False:
         fileName = 'mem_T_F'
     elif stem == True and stopwords == True:
         fileName = 'mem_T_T'
     writefile(fileName, result)
     print 'write mem'
     return
 if os.path.exists('mem1_F_F') == False:
     fileName = ''
     if stem == False and stopwords == False:
         fileName = 'mem1_F_F'
     elif stem == False and stopwords == True:
         fileName = 'mem1_F_T'
     elif stem == True and stopwords == False:
         fileName = 'mem1_T_F'
     elif stem == True and stopwords == True:
         fileName = 'mem1_T_T'
     writefile(fileName, result)
     documents.mergefile()  

我在另一个函数中将此函数称为

def doIndex():
 thread.start_new_thread(indexing, (False, False))
 thread.start_new_thread(indexing, (False, True))
 thread.start_new_thread(indexing, (True, False))
 thread.start_new_thread(indexing, (True, True))

我尝试将它放在try-except中,但它没有提到异常是什么。

错误如下

线程中未处理的异常由线程中的未处理异常启动,线程中的未处理异常由线程中的未处理异常启动

追踪(最近一次呼叫最后一次):

追踪(最近一次呼叫最后一次):

追踪(最近一次呼叫最后一次):

追踪(最近一次呼叫最后一次):

文件&#34; C:\ Users .... \ token,py&#34;,第110行,在索引中

文件&#34; C:\ Users .... \ token,py&#34;,第110行,在索引中

文件&#34; C:\ Users .... \ token,py&#34;,第110行,在索引中

文件&#34; C:\ Users .... \ token,py&#34;,第110行,在索引中

writefile(filename,result)writefile(filename,result)writefile(filename,result)writefile(filename,result)

1 个答案:

答案 0 :(得分:0)

通常情况下,此异常意味着主线程在子线程结束之前结束。只需在主线程添加time.sleep(10)就可以解决这个问题,或者添加一些等待它们结束的函数。