登录
|
注册
|
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年高考作文素材选材与运用技巧附常用分类..
27页
校园地图手绘大赛
13页
2025年高中数学公式大全3
15页
2025年高一数学二次函数压轴题兼
20页
2025年风险识别的特点和原则
1页
2025年集合练习题含答案
7页
条件致病性原虫
55页
2025年车辆质押合同
3页
2025年被帮扶教师收获总结1
3页
2025年药酒配方大全
20页
2025年脚手架技术交底
6页
2025年监理工程师之合同管理考点突破
76页
2025年电力电子技术简答题
12页
本科班(正式)-妊娠期高血压疾病
31页
2025年物业承接查验配套表格
14页
相关文档
更多>>
非法内容举报中心
文档信息
页数
:
28
收藏数
:
0
收藏
顶次数
:
0
顶
上传人
:
学习的一点
文件大小
:
19 KB
时间
:
2021-12-23
相关标签
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年给孩子的舞蹈颁奖词(推荐8篇)
2025年给孔子的一封信小学600字作文(精选1..
2025年沪科版八年级物理下学期期末考试题
2025年给同学的赠言(锦集12篇)
2025年给体育老师请假条范文(锦集15篇)
用户、角色与权限控制
2025年语文教学计划模板5篇
2025年染色体变异测试题含答案
2025年结婚爱情的句子经典(精选6篇)
生物旅游资源
2025年经理个人年度工作总结-大文斗范文网
2025年经历小学作文(锦集23篇)
2025年解封申请书合集五篇
2025年数字信号处理-填空题160道-1
2025年经典美文适合女生朗诵稿(精选3篇)
2025年教案献你一束花
2025年教师基本功大赛总结表彰大会主持稿
2023入团知识测试入团测试题及答案
焦虑自评量表SAS完整
2025年度化妆品公司各部门架构职责和各岗位..
2023年广西初中学业水平考试生物学试题试卷..
小学科学人教鄂教版六年级下册全册知识点整..
城市道路工程案例分析课件
马兰士C150使用方法
SAS(焦虑)自评量表
[落花满架]阿修罗
《唐崇荣牧师-尊重婚姻》
在线
客服
微信
客服
意见
反馈
手机
查看
返回
顶部