疯子在思考之-异常与return 的差别
程序异常会中断程序执行,所有所有的异常都需要捕获,否则会导致程序中断,一般异常由服务提供者捕出,由服务调用者捕获。这里借用think in java 的服务器程序员与客户端程序员概念。
为什么使用异常
1 返回的类型不支持,通过异常返回给用户。例如 boolean login(username,password)
2 可以显示的提示客户端程序员进行捕获异常并做出处理
存在问题:性能问题
解决办法:
覆写fillInStackTrace
http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html
通过枚举取代异常
1 解决boolean类型不支持多种情况的返回结果
2 客户端可以通过swich显示对所有错误进行处理
附错误代码规范 参考新浪微博错误代码
http://open.weibo.com/wiki/Error_code
疑问:公共错误的错误信息处理
如 content is null
不同模式的内容为空提示信息应该是不一样的
如微博为空
评论为空
用户名为空
密码为空等
他们的错误代码是一样的
但提示信息不同,怎么定义最为合适呢?
错误枚举:
ERROR_TYPE{
CONTENT_IS_NULL("20001"),
WEIBO_IS_NULL("20001",模块编码 )
}
客户端通过枚举的key获取配置的错误信息+错误代码返回给客户端
时隔三年,该帖作者重新编辑
综上所述,用异常来定义错误码总结来说比例合适
1.通过异常的中断机制,实现代码的优先返回
2.程序统一捕获对异常做统一处理
3.关于性能问题上文有描述