登录
|
注册
|
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年英语演讲比赛冠军获奖感言(共18篇)
32页
中国地区制造业竞争力评价研究
2页
2025年IT主管求职简历范文
5页
2025年CY小学下半年班主任培训讲稿
7页
2025年ABAB式四字词语
11页
2025年英语听课感悟心得体会(精选20篇)
56页
2025年英语八年级作文范文(共22篇)
16页
2025年3月份下雪了的说说240句
18页
2025年2023简历自我评价
9页
2025年2023年通用教师节祝福句子85条
8页
丙烯腈共聚物亲水性改性及其对相分离的影响
2页
2025年2023年精选励志感悟句子摘录68句
5页
2025年2023年简短的感人的情感语录锦集80条
7页
2025年2023年简洁的生活伤感句子39条
3页
2025年苏轼《江城子·别徐州》翻译赏析(精选..
31页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
28
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
学习一点新的东西
文件大小
:
19 KB
时间
:
2021-12-13
相关标签
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年诉讼保全申请书(通用18篇)
2025年机械波的相关习题
2025年评价老师优秀作文(共24篇)
双歧杆菌三联活菌胶囊治疗终末期肾脏病疗效..
2025年讽刺高傲自大的人句子(精选5篇)
原油加工损失现状及对策分析
2025年机务员培训材料笔记
压差式双作用液动冲击器结构参数与输出性能..
2025年本科生毕业设计之肯德基营销策略分析..
2025年个体户营业执照委托书范文(通用篇)..
2025年记忆里的那个微笑作文(推荐22篇)
2025年个人求职自我评价优选
2025年个人收房委托书
2025年个人房屋出租委托书汇编9篇
2025年个人工作述职报告(通用6篇)
单位球面S~(n-1)上球凸集的分析研究方法(英..
2025年记一场精彩的运动会作文(共13篇)
2025年让考官们欣赏你的自我介绍方法(精选..
2025年服务人员专业服务技巧训练教材
2025年让我留恋的作文(通用18篇)
2025年有限公司培训管理办法
2025年让平安之花在我们身边绽放作文800字(..
2025年让咬肌变小的小妙招有哪些(集锦5篇)..
2025年与时间赛跑作文篇[荐]
北京地区潜叶蝇及其寄生蜂的组成和发生动态..
2025年湖南高速铁路职业技术学院单招职业技..
2024广东省黄埔区招考聘用社区工作者13人高..
民办学校发展中存在的问题及对策
毕业设计(论文)-YZ16全液压振动压路机传动..
2024届高考英语阅读理解525个超高频词汇清单..
在线
客服
微信
客服
意见
反馈
手机
查看
返回
顶部