学习java,离不开给Exception打交道,现通过总结简单问题来学习一下
1.异常分类
异常分为:运行异常/非运行异常
java编译器要求必须对非运行异常必须进行处理(捕捉或抛出),对运行时异常可以不处理.
(1)非运行异常(编译不能通过提示:Unhandled exception type...):
如文件读写时必须进行IOExecption的捕捉.
(2)RuntimeException(所有运行异常的父类)代表运行时由JAVA虚 拟机生成的异常,原因是编程错误。如:
IndexOutOfBoundsException/ NullPointerException/ IllegalArgumentException
2. 什么时候进行try/catch,什么时候进行throws?
见平台异常2 - try/catch or throws
3.什么时候自定义异常?
总结:为了给软件试用者提供较规范的错误信息(如 errorCode + errorMessage), 使用自定义异常,
这样比单独每个错误直接记录log日志更加简明,便于后期维护.
4.自定义异常的使用?
首先定义的异常需 extends Throwable 类,
5.平台的自定义异常?
DAOException.java
P2PException.java
PlatformConnectLogOnException.java
PlatformDeliveryException.java
PlatformDownloadException.java
PlatformException.java
PlatformSFTPException.java
PlatformTransformException.java
SyncException.java
MessageException.java
NoAuthenticatedException.java
NoAuthorizedException.java
.....
平台在各个模块基本都定义了本模块的异常, 异常的发生 将会使程序不能正确运行,使用这些自定义异常能使客户从日志中清楚知道 异常代码+异常信息, 使得我们的后期维护具有较高效率.
在以后开发中,当遇到这些情况时,已尝试使用自定义异常.
6.常见的类
6.1 java.lang.Throwable
所有Error/Exception 的父类; 定义了常见的构造方法如 Throwable(String message, Throwable cause); 方法 如printStackTrace()等
6.2 Exception
所有异常的父类
|
7.问题:
(1) 每个自定义异常类都有private static final long serialVersionUID = -7564015249480613950L;
这个value是怎么得来的?
为什么可以重复? 见下1L
1.2 异常中定义了大量ErrorCode ,这些Errorcode值怎么确定的?
如PlatformConnectLogOnException.java中 从:10001开始 , serial~Id: -3966244863223955260L
PlatformDeliveryException.java中 从40001开头 1L
PlatformDownloadException.java从 20001开头 -5174978579291077870L
PlatformTransformException.java从30001开头 1L
通过分析知:每类异常都以不同的万位数开头, 这样可以方便从日志中知道是哪个功能的异常.
(2) 在com.al9202.platform.common.exception包中定义了4个异常类和一个抽象异常类PlatformException.java
这些子类异常都重写了logErrorMessage()方法,但在抛出时,通过构造方法完成调用,并没有调用 logErrorMessage()方法?
|
:在抛出时未调用,在捕获时,调用. 解决. |
分享到:
相关推荐
云计算平台异常行为检测系统的设计与实现.pdf
云计算Hadoop平台的异常数据检测算法研究.pdf
实时智能异常检测平台的算法及工程实现-携程陈剑明.pdf
本文整理自携程实时计算负责人潘国庆在QCon全球软件开发大会(北京站)2019的演讲,他介绍了携程如何基于Flink与TensorFlow构建实时智能异常检测平台,以解决规则告警系统准确率低、时效性低、规则配置复杂与耗费人力...
比较成熟的若干网络异常行为检测技术后,发现目前网络异常行为检测的技术还有些方面 考虑比较片面,检测的焦点集中于用户行为,没有全面地分析所有网络行为模式。而且, 用户易受周围环境的影响,行为具有不稳定性,...
基于云计算平台的前兆数据异常自动检测系统.pdf
opencv,摄像头清晰度检测,亮度异常检测系统,mfc展示平台
面向Android手机平台异常入侵检测的研究.pdf
Java平台统一异常框架归类.pdf
基于Linux平台的流量统计与异常检测系统的设计与实现.pdf
基于图像和机器学习的虚拟化平台异常检测.pdf
该平台是基于对底层大数据的分析,在买家的历史行为,以及当前交易的异常等维度停止判断后,推送疑似异常的订单并不一定存在风险。异常订单的风险存在很多风险,比如物流单号重复使用,退货与退货订单中的货物没有...
最后在OMNeT 平台下搭建仿真小型储水加热工业系统并进行验证,实验结果表明:该方法可以有效地检测出现场设备中的异常数据,相比于其他同类基于聚类的异常检测模型,采用该方法检测异常数据的漏报率更低。
学位论文:基于PCA和多属性信息的虚拟机异常检测方法研究包括以PCA算法为核-tS,的多属 性信息处理和以非参数CUSUM算法为核心的异常检测。前者首先通过PCA算法将多 个属性数据重新组合成一组新的相互无关的综合数据...
基于平台的打架斗殴异常行为识别
为了有效地从物联网移动设备的数字信息中挖掘出用户在日常行为中的轨迹异常,针对现有用户异常轨迹检测算法效率低的问题,提出了一种双层聚类的用户轨迹异常检测方法。考虑到移动终端设备中的轨迹信息数据量大、分布不...
数据查询平台2.8.0——异常数据查询.rp
智能手机应用普及的同时,入侵的危害也越来越严重。针对Android智能手机平台,结合入侵检测的相关研究,解决智能手机入侵检测的...实验结果表明,既减少了智能手机资源消耗,又能对手机的异常入侵尽快做出反应和处理。
Curve:时序数据异常标记工具。Curve是由百度和清华大学联合推出的一款开源工具,用于帮助开发者标记时序数据中的异常。标签数据(也就是真实有效值)对于评估时序数据异常检测方法非常有必要。否则,我们无法轻松...