-
关于异常的一个小问题0
我看到很多人在写dao层的程序的时候,在遇到异常时,catch代码块里都是throw new runtimeexception(); 而不是e.printstackprace(); 这样写有什么好处吗2013年4月20日 17:09
4个答案 按时间排序 按投票排序
-
采纳的答案
1、throw new runtimeexception() 大多数目的是为了让service层的事务回滚 但是这样抛是不好的 因为默认spring回滚RuntimeException
http://jinnianshilongnian.iteye.com/blog/1442376
2、spring为DAO层提供了一致的异常体系(DataAccessException) 因此我们应该在DAO层使用类似的异常往上抛 明确告诉service层出什么问题了
http://jinnianshilongnian.iteye.com/blog/1685963
3、再就是异常的设计了 可以参考之前的问题
http://www.iteye.com/problems/942082013年4月20日 19:07
-
异常处理机制是设计中重要的一部分。
具体要看项目的需要:
是一遇到异常就终止,异常一直抛到最外面呢;
还是遇到异常后记日志,然后继续后续的处理,或者启用另外一套逻辑进行处理;
还是遇到异常后记日志,进行一些处理,终止流程,然后在页面提示错误信息给用户;
等等。
然后还要看异常的类型:
是可以完全忽略的异常呢;
还是在预计可能的范围内可以忽略;
还是不能忽略,必须记录日志,并进行专门处理;
还是非常严重,必须记录日志,然后终止流程并进行提示。
根据以上两种类型区分,异常会在不同的层进行处理,所以如果dao层遇到异常,但是要由service层处理,就会把异常抛出去。而如果异常不经封装就抛给service层,那么service层就头疼了,要应付各种可能的异常类型,所以dao层会把异常重新封装一下,这样service层只要处理统一的异常。2013年4月20日 19:21
-
这里主要是和事物有关,在dao里抛出异常,然后在 service层里进行捕获,因为在service里有多个dao的方法话,一旦有一个发生异常,service里的dao方法都会回滚的,这就保证了数据的一致性
抛出异常runtimeexception,RuntimeException,那么一定是程序存在逻辑错误,要对程序进行修改。还有就是spring默认的异常,就是一旦发生这样的异常,就会自动捕获的。2013年4月20日 17:25
-
因为e.printstackprace();只是输出异常堆栈信息,而上面的service层无法知道下面出现异常了。
throw new RuntimeException是一个unchecked 类型的异常,service层可以捕获到,但是不强制必须捕获。
如果对异常不清楚,可以参考下面的资料:
http://www.iteye.com/topic/72170
http://www.cnblogs.com/focusj/archive/2011/12/26/2301524.html2013年4月20日 17:21
相关推荐
联想工程师专用小工具 解决系统文件异常问题V3.11.1联想工程师专用小工具 解决系统文件异常问题V3.11.1联想工程师专用小工具 解决系统文件异常问题V3.11.1联想工程师专用小工具 解决系统文件异常问题V3.11.1联想...
在重力异常的反演问题中,这通常意味着寻找一个地质模型,该模型预测的重力异常最接近于实际测量值。反演的目标是确定地壳下岩石的密度分布,以解释观测到的重力异常。 反演过程可以分为以下几个步骤: 1. **建立...
Java 对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。 二、Java 异常的分类 Java 中的异常可以分为两大类:Error 和 Exception。...
根据问题一得到的传感器异常度评分,将其归一化后作为权重进行加权平均,得到时间节点的综合评分。 然后,建立时间序列分析模型对风险性异常传感器的未知时间数据进行预测,根据 AIC 准则和 ARIMA 模型通过平稳性、...
这里的 `students` 是一个包含所有学生对象的列表,每个学生对象包含其个人信息以及一系列成绩记录(`Score` 对象)。通过遍历这些对象并比较查询条件,筛选出符合条件的成绩记录并展示。 ##### 3. 异常处理 系统...
使用XGBoost解决机器学习二分类问题,数据集描述的是不同蘑菇的相关特征,如大小、颜色等多维特征,目的是诊断每一种蘑菇是有毒。任务是对蘑菇特征数据进行学习,训练XGBoost二分类模型,然后利用训练好的模型诊断和...
在小波特征值提取过程中,异常值检测是一个重要的环节。异常值是指那些在数据集中明显偏离其他值的数据点,可能是由于测量错误、系统故障或其他非正常情况导致的。通过小波变换,异常值可能会在某个特定尺度下表现出...
异常处理是Java编程中至关重要的一个概念,它确保了程序在遇到错误或异常情况时能够以优雅的方式继续执行或者终止。下面是对Java异常处理机制的详细解析。 在Java中,异常是程序运行时发生的错误,它中断了正常的...
在数据分析中,异常值的识别和处理是一个关键步骤,因为它可能导致误导性的统计结果和模型预测。 蒙特卡arlo方法在剔除异常值时的工作原理是通过模拟大量的随机样本,构建数据分布模型,然后根据这个模型识别并剔除...
总之,“快递异常件登记小程序源码.zip”是一个全面的解决方案,涵盖了从异常件登记、查询到处理的全过程,旨在优化快递行业的异常件管理,提高工作效率。对于熟悉微信小程序开发的IT人员来说,这是一个有价值的参考...
异常处理是编程中的一个重要概念,特别是在Java这样的面向对象的语言中,异常处理机制提供了处理运行时错误的有效方式。根据给定的文件信息,我们可以深入探讨几个关键的知识点: ### 异常的基本概念 异常是指在...
首先,我们要了解“fix-lcu-window-master”这个文件名可能代表的是一个修复LCU(League Client Update)窗口大小问题的项目或工具。LCU是《英雄联盟》的新一代客户端,它使用了更加现代化的用户界面框架。当LCU出现...
当程序执行过程中遇到问题,异常机制会提供一个安全的出口,使得程序控制权能够转移到预先定义的异常处理器。传统的错误处理方式,比如通过特殊返回值来表示异常,存在一些问题,如混淆正确的返回值和异常值,降低...
- 为小号上传一个头像,可以是从网络上搜索的图片,也可以是桌面截图。这有助于增加账号的真实性,减少被系统识别为异常的风险。 2. **验证常用邮箱**: - 如果小号在注册时未验证邮箱,或者购买的小号未绑定邮箱...
- **场景示例**:在创建了一个对象但未对其初始化的情况下,就尝试调用该对象的某个属性或方法,会引发此异常。 #### 2. CASE_NOT_FOUND - **异常描述**:在CASE语句中缺少匹配项且无ELSE子句时触发。 - **错误代码...
数据质量问题是BI ETL过程中另一个常见的问题,可能是由于数据不完整、数据不准确或是数据不一致。处理这种问题的方法包括: * 检查数据是否完整 * 检查数据是否准确 * 检查数据是否一致 * 检查目标系统是否正确 ...
针对交通拥堵成为制约城市经济和社会发展的这一“瓶颈”,从提高交通控制系统性能的角度来解决城市交通拥堵问题。首先采用小波分析,交通流量数据的高频与低频分量分离;其次,求得原始信号与重构信号的差值;最后,...
该程序是一个基于小程序平台的赚钱省钱应用,旨在帮助用户找到各种优惠信息和赚钱机会。它涉及到前端开发和后端服务,其中修复了商品显示和搜索关键词功能的问题,提高了用户体验。 1. 小程序开发:小程序是一种轻...
如果一个数据点超过平均值加减3倍标准差的范围,根据正态分布的性质,这个点被定义为异常值。然而,这种方法在数据点数量较少(≤10)时可能不再适用。 肖维勒方法则试图提供一种更灵活的异常值检测方法,它基于等...
在这个项目中,我们将探讨如何利用Python编程语言和局部异常因子(Local Outlier Factor, LOF)算法来设计和实现一个有效的异常检测系统。 首先,我们需要理解Python在数据处理和分析中的角色。Python是一种流行的...