2012-08-06 91 views
-1

代码:如何捕捉超时异常

Class Manager { 
    Future fu = pool.invokeAll(workers, SEARCH_TIMEOUT, TimeUnit.SECONDS); 
    // calling the invoke call 
    search search= fu.get();  
    // callable 
} 


public class Search implements Callable<Search> { 
    Search call() { 
     // multiple workers will execute Code So don't want to catch timed out exception in here 
     // api value will be changing based on corresponding reference 
     api.search_api(); 
    } 
} 


class api() 
{ 
    search_api(){ 
     // How to catch a timed out exception in here 
     // catch(TimedoutException){} did not work in here 
    } 
} 

有没有办法,我能赶上在类的API的TIMEDOUT例外情况的方法search_api()的方法吗?

回答

1

你能赶上TimeoutException这样的代码:

try { 
     Future fu = pool.invokeAll(workers, SEARCH_TIMEOUT, 
       TimeUnit.SECONDS); 
     // calling the invoke call 
     search search = fu.get(); 
    } catch (TimeoutException e) { 
     e.printStackTrace(); 
    } 
0

您也可以通过以下方式

try{ 

. 

. 

. 

. 


catch (RuntimeException e) { 
     // TODO: handle exception 
}