近日在做一个项目, 这个项目分为多个模块,包括前台tomcat,后台服务等等。 其中后台服务 是 使用spring 将调用的接口bean 发布成JMX服务。现在有一个问题,就是当某个方法执行出错的时候,是返回错误字符串?还是抛出系统异常?
是所有的方法都返回下面的固定结果?
[code="java"]
Class Result{
String errorString;
Object result;
Boolean success;
[/code]
还是出错后 抛出系统异常?
[code="java"]
public void foo(){
try{
}catch(Exception e){
throw new AppException("...");
}
}
[/code]
不知这两种方法哪种好一些?
这个问题可能有些新手了,请各位见谅。。
看需求了,如果是客户端必须处理这种错误并且可以恢复(被检查异常),或者出错了,程序必须终止(运行时异常),那么就应该抛出异常。
返回错误码的话会减少程序的可靠性,因为调用接口的客户完全可以忽略掉这个错误码。
虽然抛出异常会有性能开销,但不至于导致性能瓶颈,所以我觉的抛出异常好点。
抛出,记日志!
我觉得:框架型的抛异常,业务性的抛字符串(业务性的异常开销比较大,而且对用户来说不是很透明)。
一般都在开发的时候抛异常. 项目上了当然是字符串了,第一开销小点 第二不要对用户太透明.
所以维护的时候都是重新错误去查log;