学习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()方法?
|
:在抛出时未调用,在捕获时,调用. 解决. |
分享到:
相关推荐
1. 云计算平台异常行为检测: 云计算环境下,虚拟机内部的安全威胁,如蠕虫病毒和地址解析协议(ARP)广播攻击等问题,是云计算安全的重要组成部分。传统网络安全设备在应对这类内部威胁时往往无法有效检测到异常...
本文整理自携程实时计算负责人潘国庆在QCon全球软件开发大会(北京站)2019的演讲,他介绍了携程如何基于Flink与TensorFlow构建实时智能异常检测平台,以解决规则告警系统准确率低、时效性低、规则配置复杂与耗费人力...
然而,在处理海量数据时,Hadoop平台常会遇到异常数据的挑战,这包括数据逻辑错误、数据链完整性缺失以及数据失效等问题。这些问题的出现严重干扰了云计算平台的数据运算准确性。 面对这些挑战,研究者们提出了针对...
OpenCV、摄像头清晰度检测、亮度异常检测系统、MFC展示平台 摘要:本系统利用OpenCV库进行摄像头清晰度检测和亮度异常检测,并使用MFC(Microsoft Foundation Classes)作为展示平台。该系统可以实时检测摄像头的...
1. 自定义的异常处理器:继承自UncaughtExceptionHandler,捕获未被捕获的异常。 2. 异常日志记录:将捕获的异常信息保存到本地,便于后续分析。 3. 异常上报:封装Bugly的API,将异常信息发送到Bugly服务器。 4. ...
值得注意的是,为了节省内存资源,Java卡平台允许直接调用JCVM内部异常类的静态方法`throwIt()`来抛出异常。另外,虽然`Throwable`类的直接子类不包括`Error`,但JCVM必须支持所有Java平台中的`Error`类(除了`...
结构化异常处理(Structured Exception Handling,SEH)是Windows平台特有的异常处理机制,它与C++的异常处理机制不同。SEH使用__try、__except和__finally关键字,能够捕获和处理系统级异常,如硬件故障、访问违规...
异常处理是保证系统稳定性和可靠性的关键环节,理解并熟练掌握这些概念对于任何ARM平台的开发者都至关重要。正确处理异常可以提高系统的响应速度,防止数据丢失,确保服务的连续性,从而提升整个系统的性能和用户...
ActionScript3(AS3),作为Adobe Flash平台的主要编程语言之一,提供了强大的异常处理机制,使得开发者能够有效地捕获并响应程序运行时可能出现的各种错误。本文将深入探讨AS3中的异常处理技术,包括异常的概念、...
Java平台上的异常处理是软件开发中的关键部分,它确保了程序的健壮性和稳定性。本文主要探讨了Java异常框架的设计和实现,特别是针对业务平台的场景。异常框架分为两大类:程序异常和业务异常。 首先,Java异常框架...
在Android或iOS等移动平台,可以使用系统提供的异常处理接口,如Android的UncaughtExceptionHandler或者iOS的NSSetUncaughtExceptionHandler,来设置全局的未捕获异常处理器。在Java或C#等语言中,可以使用try-catch...
ARM处理器异常处理是指ARM微处理器对各种异常情况作出响应和处理的过程。异常指的是处理器在正常执行程序时遇到的特殊...对于开发者而言,深入理解ARM处理器的异常处理机制对于编写高效、稳定的ARM平台软件至关重要。
这些数据集为研究者提供了一个丰富的平台,以开发和测试新的异常检测算法。通过无监督学习,可以发现数据中的异常模式,而无需依赖预先标注的类别信息。在实际应用中,这些技术可以帮助企业和机构快速识别并应对各种...
### 实时智能异常检测平台的算法及工程实现 #### 一、引言 随着大数据时代的到来,企业对数据监控的需求日益增长。为了更好地应对业务挑战,实时智能异常检测平台成为了关键的技术工具之一。该平台旨在通过算法和...
1. **JNI基础知识**:JNI是Java平台的一部分,它提供了一种标准方式让Java代码和其他语言写的代码进行交互。通过JNI,开发者可以编写本地方法(native methods),这些方法在Java源代码中声明,但在C++或C实现,然后...
Curve:时序数据异常标记工具。Curve是由百度和清华大学联合推出的一款开源工具,用于帮助开发者标记时序数据中的异常。标签数据(也就是真实有效值)对于评估时序数据异常检测方法非常有必要。否则,我们无法轻松...
本文将深入探讨“行业分类-设备装置-云平台异常事件的监控及自动处理的方法和框架”,旨在提供一套有效策略来预防、检测和应对云环境中的异常事件。 一、云平台异常事件的定义与类型 云平台异常事件通常是指在云...
1. 异构化平台与异常检测 异构化平台是指由不同硬件架构、操作系统或编程语言构建的计算环境。由于这些平台的特性差异,同一程序在不同平台上的运行表现可能会有所不同。研究表明,跨平台的恶意攻击更具挑战性,这...
在网络安全领域,流量统计与异常检测是至关重要的技术,尤其在基于Linux平台的环境中。Linux操作系统因其开源、稳定和高效的特点,成为了构建此类系统的理想选择。本文将围绕基于Linux的流量统计与异常检测系统的...
在vC++环境中,异常处理机制与标准C++略有不同,因为它集成了Windows API,这使得vC++的异常处理具有了更多与平台相关的特性。例如,vC++支持结构化异常处理(Structured Exception Handling, SEM),这是Windows...