疯子在思考之-忘掉异常
?程序异常会中断程序执行,所有所有的异常都需要捕获,否则会导致程序中断,一般异常由服务提供者捕出,由服务调用者捕获。这里借用think in java ?的服务器程序员与客户端程序员概念。
?
为什么使用异常
1 返回的类型不支持,通过异常返回给用户。例如 boolean login(username,password)
2 可以显示的提示客户端程序员进行捕获异常并做出处理
其他理由有经验的同学补充
存在问题:性能
解决办法:
有人通过?覆写fillInStackTrace
http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html
参考这里
我的方案
通过枚举取代异常
1 解决boolean类型不支持多种情况的返回结果
2 客户端可以通过swith显示对所有错误进行处理
?
附错误代码规范 参考新浪微博错误代码
http://open.weibo.com/wiki/Error_code
疑问:公共错误的错误信息处理
?如 content is null?
不同模式的内容为空提示信息应该是不一样的
如微博为空
评论为空
用户名为空
密码为空等
他们的错误代码是一样的
但提示信息不同,怎么定义最为合适呢?
我的方案
错误枚举:
ERROR_TYPE{
CONTENT_IS_NULL("20001"),
WEIBO_IS_NULL("20001",模块编码 )
}
客户端通过枚举的key获取配置的错误信息+错误代码返回给客户端
?
本篇文章有自己的思考和疑惑,欢迎大神们拍码
参考文章
http://www.iteye.com/topic/2038
http://keyknight.blog.163.com/blog/static/366378402009327331741/
http://blog.csdn.net/ilibaba/article/details/3965359
?