标签:style blog http io ar color os 使用 sp
这里总结一下Java的Exception,并实现一个自定义Exception类。
总结:
自定义一个Exception类:
ProjectNameException.java 内容如下:
package com.trianlge23.projectname.exception; public class ProjectNameException extends Throwable { private static final long serialVersionUID = 8093803025939797139L; //exception code private int exceptionCode; //exception detailed message private String detailMsg; public ProjectNameException(int exceptionCode, String extraMsg) { super(); this.setDetailMsg(exceptionCode); this.setExtraMsg(extraMsg); } public ProjectNameException(int exceptionCode) { super(); this.setDetailMsg(exceptionCode); } //notice: we do not offer the set method to set the excption code. public int getExceptionCode() { return exceptionCode; } //if there has no extra message for this excption code, init it. private void setDetailMsg(int exceptionCode) { this.exceptionCode = exceptionCode; if (ProjectNameExceptionCode.EXCEPTION_CODE_MAP .containsKey(exceptionCode)) { this.detailMsg = ProjectNameExceptionCode.EXCEPTION_CODE_MAP .get(exceptionCode); } else { this.detailMsg = ProjectNameExceptionCode.EXCEPTION_CODE_MAP .get(ProjectNameExceptionCode.PROJECTNAME_EXCEPTION_CODE_NOT_FOUND); } } //if there has extra message for this exception code, add it. private void setExtraMsg(String extraMsg) { this.detailMsg += ProjectNameExceptionCode.EXTRA_EXCEPTION_MSG_SPLITER + extraMsg; } //override the super class method getMessage() @Override public String getMessage() { return this.detailMsg; } }
package com.triangle23.projectname.exception; import java.util.HashMap; import java.util.Map; public class ProjectNameExceptionCode { //the separator between default message and extra message of exception. public static final String EXTRA_EXCEPTION_MSG_SPLITER = ": "; //the map stores the exception code and exception message public static Map<Integer, String> EXCEPTION_CODE_MAP; public static final int PROJECTNAME_EXCEPTION_CODE_NOT_FOUND = 1; static { EXCEPTION_CODE_MAP = new HashMap<Integer, String>(); EXCEPTION_CODE_MAP.put(PROJECTNAME_EXCEPTION_CODE_NOT_FOUND, "[PROJECTNAME Exception] Not found exception code."); } }
参考资料:
1. JDK1.7 API:http://docs.oracle.com/javase/7/docs/api/
2. Java编程思想(第四版)
3. Effective Java
4. Exception Handling Java Best Practices:
http://javarevisited.blogspot.com/2013/03/0-exception-handling-best-practices-in-Java-Programming.html
5. Java Tips and Best practices to avoid NullPointerException:
http://javarevisited.blogspot.com/2013/05/java-tips-and-best-practices-to-avoid-nullpointerexception-program-application.html
说明:
如有错误还请各位指正,欢迎大家一起讨论给出指导。
最后更新时间:2014-12-02
标签:style blog http io ar color os 使用 sp
原文地址:http://my.oschina.net/liuzeli/blog/351280