登录
|
注册
|
QQ账号登录
|
常见问题
联系我们:
我要上传
首页
浏览
幼儿/小学教育
中学教育
高等教育
研究生考试
外语学习
资格/认证考试
论文
IT计算机
经济/贸易/财会
管理/人力资源
建筑/环境
汽车/机械/制造
研究报告
办公文档
生活休闲
金融/股票/期货
法律/法学
通信/电子
医学/心理学
行业资料
文学/艺术/军事/历史
我的淘豆
我要上传
帮助中心
复制
下载此文档
JAVA异常设计原则 - Java综合 - Java - JavaEye论坛.doc
文档分类:
IT计算机
|
页数:约28页
举报非法文档有奖
分享到:
1
/
28
下载此文档
搜索
下载此文档
关闭预览
下载提示
1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
2.下载该文档所得收入归上传者、原创者。
3.下载的文档,不会出现我们的网址水印。
同意并开始全文预览
(约 1-6 秒)
下载文档到电脑,查找使用更方便
下 载
还剩?页未读,
继续阅读
分享到:
1
/
28
下载此文档
文档列表
文档介绍
JAVA异常设计原则 - Java综合 - Java - JavaEye论坛.doc
JAVA异常设计原则 - Java综合 - Java - JavaEye论坛
异常是面向对象语言非常重要的一个特性,良好的异常设计对程序的可扩展性、可维护性、健壮性都起到至关重要。
JAVA根据用处的不同,定义了两类异常
* Checked Exception: Exception的子类,方法签名上需要显示的声明throws,编译器迫使调用者处理这类异常或者声明throws继续往上抛。
* Unchecked Exception: RuntimeException的子类,方法签名不需要声明throws,编译器也不会强制调用者处理该类异常。异常的作用和好处:
1. 分离错误代码和正常代码,代码更简洁。
2. 保护数据的正确性和完整性,程序更严谨。
3. 便于调试和排错,软件更好维护。
……相信很多JAVA开发人员都看到或听到过“不要使用异常来控制流程”,虽然这句话非常易于记忆,但是它并未给出“流程”的定义,所以很难理解作者的本意,让人迷惑不解。如果“流程”是包括程序的每一步执行,我认为异常就是用来控制流程的,它就是用来区分程序的正常流程和错误流程,为了更能明确的表达意思,上面这
句话应改成“不要用异常来控制程序的正常流程”。现在带来一个新的问题就是如何区分程序正常流程和异常流程?我实在想不出一个评判标准,就举例来说明,大
家思维扩散下。为了后面更方便的表达,我把异常分成两类,不妥之处请谅解 * 系统异常:软件的缺陷,客户端对此类异常是无能为力的,通常都是Unchecked Exception。
*业务异常:用户未按正常流程操作导致的异常,都是Checked Exception金币转帐例子
1. 需求规定金币一次的转账范围是1~500,如果超过这个额度,就要提示用户金额超出单笔转账的限制,转账的金额是由用户在页面输入的:
因为值是用户输入的,所以给的值超出限定的范围肯定是司空见惯。我们当然不能把它(输入的值超出限定的范围)归结于异常流程,它应该属于正常流程,应该提供验证数据的完整功能。
正确的实现如下:
提供一个判断转账金币数量是否超出限定范围的方法Java代码
private static final int MAX_PRE_TRANSFER_COIN = 500;
public boolean isCoinExceedTransferLimits(int coin) {
return coin > MAX_PRE_TRANSFER_COIN;
}
private static final int MAX_PRE_TRANSFER_COIN = 500;
public boolean isCoinExceedTransferLimits(int coin) {
return coin > MAX_PRE_TRANSFER_COIN;
}Action里先对值进行校验,若不合法,直接返回并提示用户2. 在转账的过程里,发些金币数量不够:
我们的程序都是运行在并发环境中,Action无法完全做到判断金币是否足够。因为在判断之后和事务之前的刹那间,有可能产生其他扣费操作导致金币不够。这时我们就需要用业务异常(Checked Exception)来控制正确的实现如下
CoinNotEnoughExcetion .javaJava代码
//金币不够的异常类
public class CoinNotEnoughExcetion extends Exception {
private static final long serialVersionUID = -7867713004171563795L;
private int coin;
public CoinNotEnoughExcetion() {
}
public CoinNotEnoughExcetion(int coin) {
= coin;
}
public int getCoin() {
return coin;
}
***@Override
public String getMessage() {
return coin + " is exceed transfer limit:500";
}
}
JAVA异常设计原则 - Java综合 - Java - JavaEye论坛 来自淘豆网m.daumloan.com转载请标明出处.
猜你喜欢
2025年英语朗诵(精选6篇)
12页
中国城市矿产政策演化研究
2页
2025年IT行业求职信范文
3页
2025年房地产营销人员培训
74页
2025年英语口语实训报告范文(合集13篇)
34页
2025年英语写作中的母语负迁移现象(推荐6篇)..
4页
2025年4s店销售部工作计划
12页
2025年房地产市场研究报告分析
64页
东胜气田致密气藏混合水体积压裂技术研究与应..
2页
2025年英文短句(精选4篇)
21页
2025年房地产中介服务企业资质年检申报表
8页
不锈钢缝隙腐蚀标准试验方法的对比研究
2页
2025年2023年精选抒情的好句锦集50条
5页
2025年英国留学-英国工业设计专业申请条件解析..
34页
2025年2023年简洁的爱情伤感句子汇总60条
4页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
28
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
好用的文档
文件大小
:
19 KB
时间
:
2021-11-12
相关标签
java毕业设计
java论文
java毕业设计论文
java常用算法
java常见面试题
java常用面试题
java课程设计总结
java程序设计心得
常见java面试题
java集合总结
计算机原理
PHP资料
linux/Unix相关
C/C++资料
.NET
windows相关
开发文档
管理信息系统
软件工程
网络信息安全
网络与通信
图形图像
行业软件
人工智能
计算机辅助设计
多媒体
软件测试
计算机硬件与维护
网站策划/UE
网页设计/UI
网吧管理
电子支付
搜索引擎优化
服务器
电子商务
Visual Basic
数据挖掘与模式识别
数据库
Web服务
网络资源
Delphi/Perl
Python
CSS/Script
Flash/Flex
手机开发
UML理论/建模
并行计算/云计算
嵌入式开发
计算机应用/办公自动化
数据结构与算法
SEO
最近更新
2025年国家电网招聘之电网计算机考试题库(..
2025年国家电网招聘之经济学类考试题库附参..
2025年咨询工程师(经济政策)考试题库附答..
2025年土地登记代理人之土地登记相关法律知..
2025年国家电网招聘之电网计算机考试题库带..
2025年国家电网招聘之电网计算机考试题库【..
2025年土地登记代理人之土地登记相关法律知..
2025年安全员之C证(专职安全员)考试题库及..
2025年安全员之C证(专职安全员)考试题库含..
2025年国家电网招聘之经济学类考试题库重点..
2025年国家电网招聘之经济学类考试题库附答..
2025年土地登记代理人之土地登记相关法律知..
2025年土地登记代理人之土地登记相关法律知..
2025年土地登记代理人之土地登记相关法律知..
2025年机械员考试题库及参考答案【综合题】..
2025年机械员考试题库附参考答案【黄金题型..
2025年机械员考试题库(完整版)
2025年机械员考试题库及参考答案【预热题】..
2025年机械员考试题库附答案【达标题】
2025年法律常识题库及参考答案(预热题)
2025年汽车维修工技能理论考试题库及答案(..
2025年汽车维修工技能理论考试题库附参考答..
2025年汽车维修工技能理论考试题库附参考答..
2025年监理工程师之交通工程目标控制考试题..
2025年马原考试题库及完整答案1套
2025年马原考试题库及完整答案(各地真题)..
2025年马原考试题库附参考答案(基础题)
2025年马原考试题库附完整答案【精选题】
2025年马原考试题库及完整答案【全国通用】..
2025年湖南高速铁路职业技术学院单招职业技..
在线
客服
微信
客服
意见
反馈
手机
查看
返回
顶部