以下部分引自http://wiki.springside.org.cn/display/springside/Coding+Standards
这部分比较有借鉴意义,代码中一些约束检查和异常处理,自己做了些补充。
[b]基本规范[/b]
当面对不可知的调用者时,方法需要对输入参数进行校验,如不符合抛出IllegalArgumentException,建议使用Spring的Assert系列函数,应实现暂未实现的方法应抛出UnsupportedOperationException;
声明工具类为 public abstact class,确保只有static方法和变量的类不能被构造实例。
变量,参数和返回值定义尽量基于接口而不是具体实现类,如Map map = new HashMap();
代码中不能使用System.out.println(),e.printStackTrace(),必须使用logger打印信息。
[b]异常处理[/b]
重新抛出的异常必须保留原来的异常,即throw new RunTimeException("message", e);
在所有异常被捕获且没有重新抛出的地方必须写日志。
logger.error("message",e);
如果属于正常异常的空异常处理块必须注释说明原因,
写日志logger.info("message"),否则不允许空的catch块。
框架尽量捕获低级异常,并封装成高级异常重新抛出,隐藏低级异常的细节。(III)
以下引自j2EE design and development/chapter 4/Coding Standards
慢慢添上来。
以下是我自己写的;
[b]日志处理[/b]
结合异常处理。
Log4j配置和说明参见mannual文档.
系统采用Logg4j处理日志。
一般声明,可在基类中声明,子类中复用:
protected final Logger logger = Logger.getLogger(getClass());
如果static 方法需要写logger,声明:
private final static Logger logger = Logger.getLogger(***.class);
注意:不建议在static方法中写log,业务系统的log只处理业务系统的问题,static方法都是为业务逻辑服务的工具类、方法,在业务逻辑中处理异常信息,日志信息就可以了。
如果是需要持久化的类,声明logger;
protected final transient Logger logger = Logger.getLogger(getClass());
这部分比较有借鉴意义,代码中一些约束检查和异常处理,自己做了些补充。
[b]基本规范[/b]
当面对不可知的调用者时,方法需要对输入参数进行校验,如不符合抛出IllegalArgumentException,建议使用Spring的Assert系列函数,应实现暂未实现的方法应抛出UnsupportedOperationException;
声明工具类为 public abstact class,确保只有static方法和变量的类不能被构造实例。
变量,参数和返回值定义尽量基于接口而不是具体实现类,如Map map = new HashMap();
代码中不能使用System.out.println(),e.printStackTrace(),必须使用logger打印信息。
[b]异常处理[/b]
重新抛出的异常必须保留原来的异常,即throw new RunTimeException("message", e);
在所有异常被捕获且没有重新抛出的地方必须写日志。
logger.error("message",e);
如果属于正常异常的空异常处理块必须注释说明原因,
写日志logger.info("message"),否则不允许空的catch块。
框架尽量捕获低级异常,并封装成高级异常重新抛出,隐藏低级异常的细节。(III)
以下引自j2EE design and development/chapter 4/Coding Standards
慢慢添上来。
以下是我自己写的;
[b]日志处理[/b]
结合异常处理。
Log4j配置和说明参见mannual文档.
系统采用Logg4j处理日志。
一般声明,可在基类中声明,子类中复用:
protected final Logger logger = Logger.getLogger(getClass());
如果static 方法需要写logger,声明:
private final static Logger logger = Logger.getLogger(***.class);
注意:不建议在static方法中写log,业务系统的log只处理业务系统的问题,static方法都是为业务逻辑服务的工具类、方法,在业务逻辑中处理异常信息,日志信息就可以了。
如果是需要持久化的类,声明logger;
protected final transient Logger logger = Logger.getLogger(getClass());