`
zh_harry
  • 浏览: 99349 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
877aca81-daac-33c8-8bf9-3a886cebc6c3
自己动手写java 框架
浏览量:27191
社区版块
存档分类
最新评论

疯子在思考之-异常与return 的差别

    博客分类:
  • JAVA
阅读更多

 程序异常会中断程序执行,所有所有的异常都需要捕获,否则会导致程序中断,一般异常由服务提供者捕出,由服务调用者捕获。这里借用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.关于性能问题上文有描述

 

 

1
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics