DAO层处理处理异常?

在一本书上的例子里,它的dao层是抛出异常的,为什么呢?我查大多数DAO例子里都不抛异常的,不抛又是为什么呢?还有,在实际开发中是怎样处理异常的呢?... 在一本书上的例子里,它的dao层是抛出异常的,为什么呢?我查大多数DAO例子里都不抛异常的,不抛又是为什么呢?还有,在实际开发中是怎样处理异常的呢? 展开
 我来答
edelwu
推荐于2016-02-08 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:27.1万
展开全部
Java的异常(Exception)分为两类:运行时异常(runtime exception)和非运行时异常(checked exception)。

非运行时异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

但是另外一种异常:运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

如果抛异常(一般是非运行时异常)的话,那么上层调用就必须对异常进行处理(try...catch...),如果不处理(继续throws),最终将有虚拟机处理这些异常。

我个人认为,手动抛异常可以使代码变得更清晰。比如,向数据库添加一个用户,如果该用户存在,则手动抛出一个自定义的UserExistedException,这样比系统自己抛出一个Sql异常更直观一些。

如果能保证代码的正确性,抛不抛异常都无所谓。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
您可能需要的服务
百度律临官方认证律师咨询
平均3分钟响应 | 问题解决率99% | 24小时在线
立即免费咨询律师
12670人正在获得一对一解答
苏州天空之城3分钟前提交了问题
武汉草原风1分钟前提交了问题
西安夜猫子4分钟前提交了问题
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消
还有疑问? 马上咨询36057位在线律师,3分钟快速解答
立即免费咨询律师

辅 助

模 式