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

编写自己的Exception

发表于: 2015-07-07   作者:zh-workhard-Java   来源:转载   浏览:
摘要: 在实际的工作中,通常需要定义自己功能模块相关的异常,下面一个实例可以实现定义自己的异常:   1.定义一个异常码抽象类作为基类 public abstract class BaseExceptionCode { private String errorMessage ; private int errorCode ; private final BaseEx

在实际的工作中,通常需要定义自己功能模块相关的异常,下面一个实例可以实现定义自己的异常:

 

1.定义一个异常码抽象类作为基类

public abstract class BaseExceptionCode {
   private String errorMessage ;
   private int errorCode ;
   private final BaseExceptionCode display ;
   
   public BaseExceptionCode(String errorMessage,int errorCode){
	   this.errorMessage = errorMessage;
	   this.errorCode = errorCode ;
	   this.display = this ;
   }
   
   public BaseExceptionCode(int errorCode,String errorMessage){
	   this.errorCode = errorCode ;
	   this.errorMessage = errorMessage ;
	   this.display = this ;
   }
   
   public String getErrorMessage(){
	   return errorMessage ;
   }
   
   public int getErrorCode(){
	   return errorCode ;
   }
   
   public BaseExceptionCode getDisplay(){
	   return display ;
   }
}

 

2.定义自己的异常码

public class MyExceptionCode extends BaseExceptionCode{
    protected MyExceptionCode(String errorMessage,int errorCode){
    	super(errorMessage,errorCode);
    }
    
    protected MyExceptionCode(int errorCode,String errorMessage){
    	super(errorCode,errorMessage);
    }
    
    public static final MyExceptionCode E_PARAM_IS_NULL_A = new MyExceptionCode(ConstantWithExceptionMsg.E_PARAM_NULL,ConstantWithExceptionCode.E_PARAM_CODE);
    
    public static final MyExceptionCode E_PARAM_IS_NULL_B = new MyExceptionCode(ConstantWithExceptionCode.E_PARAM_CODE,ConstantWithExceptionMsg.E_PARAM_NULL);
}

 

3.定义自己的异常码集合(常量)

/**
 * 异常码集合
 */
public class ConstantWithExceptionCode {
    public static final int E_PARAM_CODE = 100001 ;
}

 

4.定义自己的异常信息集合(常量)

/**
 * 异常信息
 */
public class ConstantWithExceptionMsg {
    public static final String E_PARAM_NULL = "参数为空" ;
}

 

5.定义自己的异常

public class MyException extends RuntimeException{
	private static final long serialVersionUID = -1933116620478022916L;
	
	private String errorMessage ; //异常信息
	private MyExceptionCode errorCode ; //异常码
	
	public MyException(MyExceptionCode errorCode){
		super(errorCode.getErrorMessage());
		this.errorCode = errorCode ;
		this.errorMessage = errorCode.getErrorMessage();
	}
	
	public MyException(String errorMessage,MyExceptionCode errorCode){
		super(errorMessage);
		this.errorMessage = errorMessage ;
		this.errorCode = errorCode ;
	}
	
	public MyException(MyExceptionCode errorCode,String errorMessage){
		super(errorMessage);
		this.errorCode = errorCode;
		this.errorMessage = errorMessage;
	}
	
	
	public String getErrorMessage(){
		return errorMessage ;
	}
	
	public MyExceptionCode getErrorCode(){
		return errorCode ;
	}

}

 

6.测试自己的异常

public class MyExceptionTest {
   public static void main(String[] args){
	   try{
		   test("","");
	   }catch(MyException e){
		   System.out.println(e);
		   throw e ;
	   }
	   
   }
   
   private static void test(String str1,String str2) throws MyException{
	   if("".equals(str1) || str1 == null || "".equals(str2) || str2 == null ){
		   throw new MyException(MyExceptionCode.E_PARAM_IS_NULL_A);
	   }else{
		   return ;
	   }
   }
}

 

7.测试结果

com.zh.exception.MyException: 参数为空

Exception in thread "main" com.zh.exception.MyException: 参数为空

at com.zh.exception.MyExceptionTest.test(MyExceptionTest.java:16)

at com.zh.exception.MyExceptionTest.main(MyExceptionTest.java:6)

编写自己的Exception

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
一、提取端到端的流数据   在wireshark抓包的过程中,发现了一个比较实用的功能,就是follow tcp
接上篇 linux下libpcap抓包分析 一、系统环境 1、系统及类库要求: 类Unix系统+libpcap库+libnet库+
require 'msf/core' class Metasploit3 < Msf::Auxiliary include Msf::Exploit::Remote::Tcp in
1、Introduction 简介 This on-line document accompanies the slides and other material availabl
1 什么是单点登陆 单点登录( Single Sign On ),简称为 SSO ,是目前比较流行的企业业务整合的解
原始发表时间:2009-07-03 学习过程 - 思维导图: 使用VS 2008开发自己的DLL,用于创建桌面快捷方式
这段时间对IronPython充满了极大的兴趣,学习越深入,越感觉到现有IronPython IDE实在不太好用,正
这段时间对IronPython充满了极大的兴趣,学习越深入,越感觉到现有IronPython IDE实在不太好用,正
一、数据库连接池:   在一般用JDBC 进行连接数据库进行CRUD操作时,每一次都会:     通过:
1、Introduction 简介 This on-line document accompanies the slides and other material availabl
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号