package com.d1xn.core.exception;
/**
* 异常枚举
*
* @author gonghf
* @version 1.0 Jan 5, 2009
*/
public final class D1xnErrorEnum {
public final static D1xnError E1000 = new D1xnError("1000", "没有该异常");
public final static D1xnError E2000 = new D1xnError("2000", "数据库连接出错");
final static D1xnError getError(String errorCode) {
try {
return (D1xnError) new D1xnErrorEnum().getClass().getDeclaredField(
"E" + errorCode).get(new D1xnErrorEnum());
} catch (Exception e) {
throw new D1xnRuntimeException(D1xnErrorEnum.E1000);
}
}
final static class D1xnError {
private static final long serialVersionUID = 217246126247731875L;
private String code;
private String message;
private D1xnError(String code, String msg) {
this.message="d1xn-" + code + ":" + msg;
}
public final String getCode() {
return this.code;
}
public final String getMessage() {
return this.message;
}
}
}
package com.d1xn.core.exception;
/**
* D1XN异常
*
* @author gonghf
* @version 1.0 Jan 5, 2009
*/
public final class D1xnException extends Exception {
private static final long serialVersionUID = 1387623981549785491L;
private String code;
public D1xnException(D1xnErrorEnum.D1xnError error) {
super(error.getMessage());
this.code=error.getCode();
}
public D1xnException(String errorCode) {
super(D1xnErrorEnum.getError(errorCode).getMessage());
this.code=errorCode;
}
public final String getCode() {
return this.code;
}
}
package com.d1xn.core.exception;
/**
* D1XN运行时异常
*
* @author gonghf
* @version 1.0 Jan 5, 2009
*/
public final class D1xnRuntimeException extends RuntimeException {
private static final long serialVersionUID = 2325188130006865682L;
private String code;
public D1xnRuntimeException(D1xnErrorEnum.D1xnError error) {
super(error.getMessage());
this.code=error.getCode();
}
public D1xnRuntimeException(String errorCode) {
super(D1xnErrorEnum.getError(errorCode).getMessage());
this.code=errorCode;
}
public final String getCode() {
return this.code;
}
}
分享到:
相关推荐
通过以上的讨论,我们可以看到,这个项目旨在利用Spring Boot的灵活性和强大功能,结合自定义断言和全局异常处理,构建一个健壮的业务系统,提高开发效率,保证代码质量。这种做法对于大型项目尤其重要,因为它能够...
在IT行业中,网络通信是至关重要的一个环节,而各种协议则是网络通信的基石。本文将深入探讨基于HTTP协议的自定义协议封装,特别是在使用XML作为数据载体时如何进行设计和实现。HTTP(超文本传输协议)是互联网上...
在自定义封装的过程中,我们需要创建一个RequestQueue实例,并设置自己的网络请求监听器,以便在请求成功或失败时进行相应的处理。 对于JSON下载,Volley提供了JsonArrayRequest和JsonObjectRequest类。我们可以...
首先,我们来看一个简单的自定义异常处理示例: ```java @ControllerAdvice public class TstExceptionHandle { @ExceptionHandler(Exception.class) public void myExceptionHandle(HttpServletResponse ...
Volley是一个由Google推出的网络请求库,它特别适合于频繁且小量的数据交换,如加载图片、获取用户信息等。Volley以其高效、易用和良好的缓存策略受到开发者欢迎。在本项目中,“SecondPackVolley”很可能包含了对...
这个例子展示了如何创建一个自定义查询组件,以便在表示层(如Spring MVC的Controller)中使用,并在后台(通常是服务层或DAO层)进行解析处理。下面将详细介绍这个过程中的关键知识点。 1. **自定义查询对象**: ...
将异常处理模块化意味着我们将创建一个独立的库或者组件,专门负责异常的捕获和上报。这个库可以包含以下功能: 1. 自定义的异常处理器:继承自UncaughtExceptionHandler,捕获未被捕获的异常。 2. 异常日志记录:...
在QT下实现记录日志类的封装调用,是一个重要的实践过程,它可以帮助开发者更好地管理和追踪程序运行状态,从而提升软件的稳定性和可维护性。 首先,我们要理解日志的重要性。日志记录了程序运行时的事件和异常,...
本项目“封装bilibili播放器,自定义边下边播和缓存功能.zip”提供了一个开源解决方案,帮助开发者实现B站视频的边下边播和缓存功能。下面我们将详细探讨这个项目的核心知识点。 1. **视频播放器封装**: 开发者...
为了便于在项目中统一管理和使用日志,通常会创建一个封装类,例如 `JianKunKing.Common.Log`。这个封装类可以包含以下功能: - **初始化**:在应用程序启动时,根据配置文件初始化 log4net 设置,确保日志功能可用...
同时,为了防止用户输入过多导致界面异常,我们需要设置一个最大高度限制。 实时监测输入文字的最大高度可以通过计算`UITextView`内容的高度来实现。如果当前高度超过最大值,可以提醒用户或者直接截断超出部分的...
综上所述,自封装的JdbcTemplate是一个简化JDBC操作的实用工具,它通过设计模式和面向对象编程,将复杂的数据库交互转化为简单的API调用,降低了开发难度,提高了代码质量。对于初学者而言,这是一个很好的学习和...
2. **自定义类封装**:这个代码实例中,开发者创建了一个自定义的类,将一些常用的数据库操作进行了封装,比如打开、关闭连接,执行SQL语句,获取记录集等。这种封装有助于提高代码的复用性,减少重复工作,同时使...
此方法应该返回一个表示DOM树的内部结构,比如自定义的TreeNode类。 4. 查找节点方法:设计一个`findNodeByPath()`方法,接收一个XPath或CSS选择器作为参数,用于定位DOM树中的特定节点。这个方法可以通过遍历DOM树...
5. 异常的封装与日志记录:在统一异常处理中,通常会将捕获的异常封装成一个包含异常类型、异常消息、堆栈跟踪等信息的对象,然后记录到日志中。这不仅有助于开发者在出现问题时快速定位,也是系统监控和性能优化的...
2. **配置TrustManager**:在Java中,我们需要创建一个自定义的TrustManager,它接受自签名证书。这涉及到对X509TrustManager接口的实现。 3. **设置SSLContext**:使用自定义的TrustManager实例创建SSLContext,并...
在这个自定义的RPC框架示例中,我们将探讨如何使用Java和Maven构建一个基础的RPC框架。这个框架可能包括服务提供者(Provider)、服务消费者(Consumer)以及服务注册与发现等核心组件。 1. **服务提供者(Provider...
为了支持自定义二次开发,你可能需要封装一个类,提供生成二维码、添加图片和文字的接口,这样其他开发者可以根据需要方便地扩展功能。例如,可以创建一个`CustomQrCode`类,包含生成二维码、设置自定义内容的方法,...
封装是面向对象编程的一个重要概念,它将数据和操作数据的方法捆绑在一起,隐藏内部实现细节,只对外提供接口进行操作,以此提高代码的重用性和安全性。 在标签中,“pb”指的是PowerBuilder,“xml”表示涉及XML...
在这个项目实战中,我们将设计和实现一个支持自定义规则的灰度发布组件。灰度发布是一种软件部署策略,允许在全面发布新版本之前,先在一小部分用户或环境中测试新功能,以降低潜在问题对整体服务的影响。在这个组件...