今天廷鹏师弟来的java建议
如下一段获取数据代码的问题:
public Serializable getById(Serializable id) throws BaseBusinessException {
if (id == null)
throw new BaseBusinessException("根据给出的Id获得对象时,ID不得为空!");
try {
return basicDAO.findById(id);
} catch (BaseDBException e) {
log.error("根据给出的Id获得对象:" + getObjectName() + "失败");
e.printStackTrace();
throw new BaseBusinessException(e.getMessage());
// }
}
}
问题:
问题1: e.printStackTrace(); 会造成有一部分日志不在控制范围内,
应该这样写
log.error("根据给出的Id获得对象:" + getObjectName() + "失败",e);
问题2: throw new BaseBusinessException(e.getMessage());
这种方法直接抛出异常到界面,会非常不友好
对于一种get数据的方法,应该将这些异常捕获,用log.erro打印到后台,前端返回null即可
改良1 : 可采用标注型事务
原来我们都是采用 前缀控制的 声明式事务,这种方法对方法名有所限制,而且不太灵活
可以采用标注型控制,在方法上加上 @Transactional 即可
@Transactional
public Serializable getById(Serializable id) throws BaseBusinessException
改善后的代码
@Transactional
public Serializable getById(Serializable id) throws BaseBusinessException {
if (id == null)
throw new BaseBusinessException("根据给出的Id获得对象时,ID不得为空!");
try {
return basicDAO.findById(id);
} catch (BaseDBException e) {
log.error("根据给出的Id获得对象:" + getObjectName() + "失败", e);
//e.printStackTrace();
//throw new BaseBusinessException(e.getMessage());
// }
}
return null;
}
今天廷鹏师弟来的java建议的更多相关文章
- 2015第16周六学习java建议
学习Java 建议: 尽量用 google 查找技术资料. 有问题在 stackoverflow 找找,大部分都已经有人回答. 多看官方的技术文档. ibm developerworkers 的文章质 ...
- 振鹏同学正式学习java的第一天!
一.今日收获 1.最棒的莫过于运行Java的HelloWorld! 2.在同学的帮助下历经坎坷困苦安装完成了Eclipse软件并设置好环境变量. 3.最最最开始了解了Java的前世今生,编程语言发展的 ...
- java超市购物管理系统
一.概述 1.鹏哥前面有写过java项目超市管理系统项目,传送门 2.收到很多朋友私信给我,也很感谢老铁们的反馈和交流,前面这个项目只是对java基础知识和面向对象的思想练习,但是没有涉及到java如 ...
- Java的常用对象①②
Java的常用对象① Java的常用对象有很多,这里只对lang包中常用的Object,Date(Calendar,DateFormat,Math),System,Runtime进行介绍.㈠Objec ...
- Java Annotation认知(包括框架图、详细介绍、示例说明)
摘要 Java Annotation是JDK5.0引入的一种注释机制. 网上很多关于Java Annotation的文章,看得人眼花缭乱.Java Annotation本来很简单的,结果说的人没说清楚 ...
- 20145317彭垚 《Java程序设计》第一次实验实验报告
20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...
- 20145218 《Java程序设计》第05次实验报告
北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验名称:Java网络编程及安全 一.实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使 ...
- PHP开发人员对JAVA的WEB开发入门(初版-已废弃)
最近准备对其他部门PHP开发的童鞋做一个对JAVA的培训.知己知彼,百战不殆,我要先了解点PHP,才能确认他们的基础,达到好的授课效果. PHP(原始为Personal Home Page的缩写,后正 ...
- Java 多态、内部类、异常、包
一.多态 1. 概述 理解:多态可以理解为事物存在的多种体(表)现形态. 例如: 动物中的猫和狗. 猫这个对象对应的是猫类型,例如:猫 x = new 猫(); 同时猫也是动物中的一种,也可以把猫称为 ...
随机推荐
- Mirror--镜像用户同步
--=========================================--在镜像搭建后,在主库服务器上创建登录,并在数据库上建立对应用户,--数据库中用户被同步到镜像数据库中,但登录是 ...
- 103-advanced-上下文
上下文提供了一种通过组件树传递数据的方法,无需在每个级别手动传递道具. 在典型的React应用程序中,数据通过prop自上而下(父到子)传递,但对于应用程序中许多组件所需的某些类型的道具(例如场所偏好 ...
- Python微信机器人
Python微信机器人 本文目录 一 简介 二 登录微信 三 微信好友男女比例 四 微信好友地域分布 五 微信聊天机器人 一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量 ...
- docker——安全防护与配置
Docker是基于Linux操作系统实现的应用虚拟化.运行在容器内的进程,跟运行在本地系统的进程本质上并无区别,配置不合适的安全策略将可能给本地系统带来安全风险,因此,Docker的安全性在生产环境中 ...
- hdu 5185 动态规划 分析降低复杂度
这题说的是 x[1]+x[2]+x[3]+…+x[n]=n, 这里 0 <= x[i] <= n && 1 <= i <= n x[i] <= x[i+1 ...
- Codeforces Round #265 (Div. 2) E
这题说的是给了数字的字符串 然后有n种的操作没次将一个数字替换成另一个字符串,求出最后形成的字符串的 数字是多大,我们可以逆向的将每个数推出来,计算出他的值和位数记住位数用10的k次方来记 1位就是1 ...
- SQL Server System.Data.SqlClient.SqlException:已成功于服务器建立连接,但是在 登录前的握手期间发生错误
一.错误描述 错误名称如上.整体错误如下: System.Data.EntityException 基础提供程序在Open上失败--> System.Data.SqlClient.SqlExce ...
- RANSAC算法在图像拼接上的应用的实现
关于算法原理请参考<基于SURF特征的图像与视频拼接技术的研究>. 一.问题提出 RANSAC的算法原理并不复杂,比较复杂的地方在于"建立模型"和&qu ...
- 《Java程序设计》第三章-基础语法
20145221<Java程序设计>第三章-基础语法 总结 教材学习内容总结 类型.变量与运算符 类型 Java可区分为基本类型(Primitive Type)和类类型(Class Typ ...
- 2017-2018-1 JaWorld 团队作业--冲刺6
2017-2018-1 JaWorld 团队作业--冲刺6(20162308) 实现 由于我在冲刺部分负责的是类之间的耦合,所以我就介绍一下本次游戏的总体实现. 我们定义了Sprite类,即精灵类,游 ...