java开发中,DAO层的方法有许多判断,异常从DAO层集中抛出,比如说UserDao在进行添加用户(add(sql,Object o))时会判断,当sql为空时抛出了自定义异常MyException("sql为空"),这时如果UserService addUser()调用了这个add方法,那么UserService必须要捕获这个自定义异常然后抛给控制层,然后控制层再进行处理吗,这是否有些太繁琐了,感觉平时大家是不会这么处理的,但是不处理Dao层抛出的那个异常程序又会中断,影响使用效果,大家都是怎么做的啊??
3条回答 默认 最新
- threenewbee 2016-07-01 12:40关注
根据你的业务需要来处理。
比如注册用户这个逻辑,在jdbc层丢出一个sqlexception,重复主键的异常,你的dal应该丢出“记录重复”这样的异常,而到了你的业务逻辑层,应该丢出“重复的用户名”,再到你的界面,就不丢出异常,而是显示一个错误提示给用户,当前用户名已经注册。所谓异常,就是指意外情况,也就是你代码中没有考虑的状况。比如对于jdbc来说,sqlexception是异常,但是对于你的dao来说,你可以预料到这个异常的发生,所以它本身不是异常,不上抛,而记录重复应该怎么处理,才是无法意料的事情,所以才丢出重复记录的异常。
解决 1无用
悬赏问题
- ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
- ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
- ¥15 乘性高斯噪声在深度学习网络中的应用
- ¥15 运筹学排序问题中的在线排序
- ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
- ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
- ¥15 C++ 头文件/宏冲突问题解决
- ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
- ¥50 安卓adb backup备份子用户应用数据失败
- ¥20 有人能用聚类分析帮我分析一下文本内容嘛