当前位置:首页 > 开发 > 编程语言 > Java > 正文

用枚举来处理java自定义异常

发表于: 2015-02-04   作者:tcrct   来源:转载   浏览:
摘要: 在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。 1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage public
在系统开发过程中,总少不免要自己处理一些异常信息,然后将异常信息变成友好的提示返回到客户端的这样一个过程,之前都是new一个自定义的异常,当然这个所谓的自定义异常也是继承RuntimeException的,但这样往往会造成异常信息说明不一致的情况,所以就想到了用枚举来解决的办法。

1,先创建一个接口,里面有两个方法,一个是getCode, 一个是getMessage
public interface ExceptionEnums {
	
	public int getCode();
	
	public String getMessage();

}



2,创建一个枚举,实现ExceptionEnums里的方法
public enum DBExceptionEnums implements ExceptionEnums{
	
	UNIQUE_KEY(10001, "主键约束错误");
	
	public int code;
	public String message;
	
	private UserEnums(int code, String message){
		this.code = code;
		this.message = message;
	}
	

	@Override
	public int getCode() {
		return code;
	}

	@Override
	public String getMessage() {
		return message;
	}

}



3,定义一个自定义的异常类
public class ServiceException extends RuntimeException{
   private ExceptionEnums exceptionEnums;
   public ServiceException(ExceptionEnums exceptionEnums){
           this.exceptionEnums = exceptionEnums;
   }
   public ExceptionEnums getExceptionEnums(){
       return exceptionEnums;
   }
   .....其它get/set方法
}



4,业务代码中抛出ServiceException
if(true){
  throw new ServiceException(DBExceptionEnums.UNIQUE_KEY);
}


5,Controller处理抛出的异常
try{
   
}catch(ServiceException se){
   logger.dubug(se.getMessage, se);   
   return buildExceptionJSON(se); //返回异常JSON
}


buildExceptionJSON(示例)
private String buildExceptionJSON(ServiceException se){
  ExceptionEnums enums = se.getExceptionEnums();
  return  "{'code':"+ enums.getCode+",'message':'     "+enums.getMessage()+"'}";
}



这样做的好处是可以高度统一所有异常返回的code及message, 如果需要更改提示信息或代号,只需更改DBExceptionEnums即可,并且可以自行添加多个异常枚举文件来分别对应不同的模板异常信息。代码结构简单,清淅。个人觉得还是一个不错的处理办法!如有更好的,欢迎提出。学习!



用枚举来处理java自定义异常

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
自定义异常 碰到异常时, 如果只是logger.error一下, 没有处理的话,错误很难定位(前台页面中会出现
原创整理不易,转载请注明出处:在java Spring基础上实现自定义异常处理框架教程 代码下载地址:htt
用过安卓手机的用户以及安卓开发者们会时长碰到程序异常退出的情况,普通用户遇到这种情况,肯定非
public class ExceptionTest { public static void main(String [] args){ int result; Test test =
//仅作为学习笔记 /* 因为项目中会出现特有的问题 而这些问题并未被java所描述并封装对象 所以对于
首先谈一下异常的分类。先看下图: 未检查的异常:派生至Error类和RuntimeException类的所有异常类(
为什么要在JEE项目中谈异常处理呢? 可能许多java初学者都想说:“异常处理不就是 try….catch…fin
上篇博客:详解Java异常处理——编程式异常处理 介绍了编程式异常的处理,我们知道,用这种方法,在
在程序设计中,进行异常处理是非常关键和重要的一部分。一个程序的异常处理框架的好坏直接影 响到整
异常处理: java中的异常处理机制主要依赖于try,catch,finally,throw,throws五个关键字。其中,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号