我创建了一个搜索源文件夹中文件的程序。如果找到任何文件,它会处理该文件并将文件移动到目标文件夹并在源文件夹中查找新文件。就像它必须不断检查文件的源文件夹。我用线程在源文件夹中查找文件。我遇到的问题是在文件进程线程停止期间抛出任何异常。即使在文件处理期间抛出异常,我也希望线程能够运行。它必须将该错误移动到其他文件夹并在源文件夹中查找新文件。如何让线程继续运行?
实际上有4个源文件夹和4个目标文件夹。我必须在每个来源和相同的操作中执行相同的操作。目的地对。所以我在一个类中创建了4个线程,在第二个类中创建了搜索操作,在第三个类中创建了文件处理。
class MainClass
{
public static void main(String[] args){
for(int i=0;i<4;i++){
SearchClass search = new SearchClass();
Thread thread = new Thread(search);
thread.start();
}
}
}
class SearchClass implements Runnable
{
public void run() {
try {
searchfile();
} catch(Exception e) {
e.printStackTrace();
}
}
public void searchfile(){
try{
ProcessClass p = new ProcessClass();
p.fileProcess();
}catch(Exception){
e.printStackTrace();
}
}
}
class ProcessClass
{
public void fileProcess(){
try{
.........................
........... ----->
// Thread1 throws exception here and get stopped.
// Its searching file in source folder again.
}catch(Exception){
e.printStackTrace();
}
}
}
答案 0 :(得分:2)
这与线程无关,也与异常处理有关。
你的线程可能应该经历一个循环: