日期:2014-05-20  浏览次数:20628 次

返回值异常问题
public reade AToB(Object obj) throws BussinessException {
try {
StringWriter writer = new StringWriter();
StringReader reader = new StringReader(writer.toString());
writer.close();
return reader;
} catch (Exception e) {
e.printStrackTrace();
}
}
这样就报无返回值错误
如果将catch语句改成catch (Exception e) {
throw new BussinessOperationException(e);
}
就不报错了。为什么?

------解决方案--------------------
通常一个项目是不应该在项目界面抛异常的,估计这是你公司的项目,这样的话,所以得异常都通过BussinessOperationException(e) 抛到了最上层,然后可能用拦截器做处理。比如,一个手机号码是空的,就不应该抛null pointException,而应该友好的提示手机号码为空。因为你通过throw BussinessOperationException()抛到了最上层了,所以就没有报异常。楼主,你不妨去看看你项目的拦截器,或者过滤器,就大致了解工作原理了。