在try...cathch....中return值会出现编译错误,这是因为,当try语句捕获错误时候,有可能会丢失return语句,从而导致错误,最简单的办法就是将需要return的值赋到一个变量,而将变量从try语句中解放出来,放在最后,这样就能骗过编译器。
public int get() {
int val= -1; //中间变量
try {
val = abq.take();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return val; //跳出try语句
}