`
case0079
  • 浏览: 53033 次
  • 性别: Icon_minigender_1
  • 来自: 江阴
社区版块
存档分类
最新评论

设计的一个自定义异常的封装

    博客分类:
  • JAVA
 
阅读更多

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;
	}
}

 

分享到:
评论

相关推荐

    业务异常提示处理 springboot+Assert(自定义断言)

    通过以上的讨论,我们可以看到,这个项目旨在利用Spring Boot的灵活性和强大功能,结合自定义断言和全局异常处理,构建一个健壮的业务系统,提高开发效率,保证代码质量。这种做法对于大型项目尤其重要,因为它能够...

    基于http协议的自定义协议封装

    在IT行业中,网络通信是至关重要的一个环节,而各种协议则是网络通信的基石。本文将深入探讨基于HTTP协议的自定义协议封装,特别是在使用XML作为数据载体时如何进行设计和实现。HTTP(超文本传输协议)是互联网上...

    自定义二次封装Volley

    在自定义封装的过程中,我们需要创建一个RequestQueue实例,并设置自己的网络请求监听器,以便在请求成功或失败时进行相应的处理。 对于JSON下载,Volley提供了JsonArrayRequest和JsonObjectRequest类。我们可以...

    源码剖析Springboot自定义异常.docx

    首先,我们来看一个简单的自定义异常处理示例: ```java @ControllerAdvice public class TstExceptionHandle { @ExceptionHandler(Exception.class) public void myExceptionHandle(HttpServletResponse ...

    自定义网络请求,对网络请求的简单封装

    Volley是一个由Google推出的网络请求库,它特别适合于频繁且小量的数据交换,如加载图片、获取用户信息等。Volley以其高效、易用和良好的缓存策略受到开发者欢迎。在本项目中,“SecondPackVolley”很可能包含了对...

    自定义查询对象组件封装例子

    这个例子展示了如何创建一个自定义查询组件,以便在表示层(如Spring MVC的Controller)中使用,并在后台(通常是服务层或DAO层)进行解析处理。下面将详细介绍这个过程中的关键知识点。 1. **自定义查询对象**: ...

    android开发,异常处理,捕获异常上传到bugly,捕获异常库module

    将异常处理模块化意味着我们将创建一个独立的库或者组件,专门负责异常的捕获和上报。这个库可以包含以下功能: 1. 自定义的异常处理器:继承自UncaughtExceptionHandler,捕获未被捕获的异常。 2. 异常日志记录:...

    QT下实现记录日志类封装调用

    在QT下实现记录日志类的封装调用,是一个重要的实践过程,它可以帮助开发者更好地管理和追踪程序运行状态,从而提升软件的稳定性和可维护性。 首先,我们要理解日志的重要性。日志记录了程序运行时的事件和异常,...

    封装bilibili播放器,自定义边下边播和缓存功能.zip

    本项目“封装bilibili播放器,自定义边下边播和缓存功能.zip”提供了一个开源解决方案,帮助开发者实现B站视频的边下边播和缓存功能。下面我们将详细探讨这个项目的核心知识点。 1. **视频播放器封装**: 开发者...

    log4net 日志类封装

    为了便于在项目中统一管理和使用日志,通常会创建一个封装类,例如 `JianKunKing.Common.Log`。这个封装类可以包含以下功能: - **初始化**:在应用程序启动时,根据配置文件初始化 log4net 设置,确保日志功能可用...

    swift-UITextView的封装可以自定义placeholder

    同时,为了防止用户输入过多导致界面异常,我们需要设置一个最大高度限制。 实时监测输入文字的最大高度可以通过计算`UITextView`内容的高度来实现。如果当前高度超过最大值,可以提醒用户或者直接截断超出部分的...

    JdbcTemplate,自己封装的jdbc小框架

    综上所述,自封装的JdbcTemplate是一个简化JDBC操作的实用工具,它通过设计模式和面向对象编程,将复杂的数据库交互转化为简单的API调用,降低了开发难度,提高了代码质量。对于初学者而言,这是一个很好的学习和...

    自定义ADO类代码,可封装成DLL

    2. **自定义类封装**:这个代码实例中,开发者创建了一个自定义的类,将一些常用的数据库操作进行了封装,比如打开、关闭连接,执行SQL语句,获取记录集等。这种封装有助于提高代码的复用性,减少重复工作,同时使...

    HTMLPaser的一个封装

    此方法应该返回一个表示DOM树的内部结构,比如自定义的TreeNode类。 4. 查找节点方法:设计一个`findNodeByPath()`方法,接收一个XPath或CSS选择器作为参数,用于定位DOM树中的特定节点。这个方法可以通过遍历DOM树...

    J2EE项目中统一异常处理源码

    5. 异常的封装与日志记录:在统一异常处理中,通常会将捕获的异常封装成一个包含异常类型、异常消息、堆栈跟踪等信息的对象,然后记录到日志中。这不仅有助于开发者在出现问题时快速定位,也是系统监控和性能优化的...

    async-http的二次封装,包含了https的自定义证书的签名问题

    2. **配置TrustManager**:在Java中,我们需要创建一个自定义的TrustManager,它接受自签名证书。这涉及到对X509TrustManager接口的实现。 3. **设置SSLContext**:使用自定义的TrustManager实例创建SSLContext,并...

    一个自定义的RPC框架示例

    在这个自定义的RPC框架示例中,我们将探讨如何使用Java和Maven构建一个基础的RPC框架。这个框架可能包括服务提供者(Provider)、服务消费者(Consumer)以及服务注册与发现等核心组件。 1. **服务提供者(Provider...

    qt 生成自定义二维码

    为了支持自定义二次开发,你可能需要封装一个类,提供生成二维码、添加图片和文字的接口,这样其他开发者可以根据需要方便地扩展功能。例如,可以创建一个`CustomQrCode`类,包含生成二维码、设置自定义内容的方法,...

    PB9解析xml(封装好的自定义对象,源码)

    封装是面向对象编程的一个重要概念,它将数据和操作数据的方法捆绑在一起,隐藏内部实现细节,只对外提供接口进行操作,以此提高代码的重用性和安全性。 在标签中,“pb”指的是PowerBuilder,“xml”表示涉及XML...

    97丨项目实战三:设计实现一个支持自定义规则的灰度发布组件(设计)1

    在这个项目实战中,我们将设计和实现一个支持自定义规则的灰度发布组件。灰度发布是一种软件部署策略,允许在全面发布新版本之前,先在一小部分用户或环境中测试新功能,以降低潜在问题对整体服务的影响。在这个组件...

Global site tag (gtag.js) - Google Analytics