java编码注意事项

Java 异常处理的注意事项

尽量不要使用e.printStackTrace(),而是使用log打印。

e.printStackTrace()语句产生的字符串记录的是堆栈信息,如果信息太长太多,字符串常量池所在的内存块没有空间了,即内存满了,那么,用户的请求就卡住啦~

用log正确打印异常格式

log.info(“你的程序有异常啦,{}”,e);

不要用一个Exception捕捉所有可能的异常

用基类 Exception 捕捉的所有可能的异常,如果多个层次都这样捕捉,会丢失原始异常的有效信息。

记得使用finally关闭流资源或者直接使用try-with-resource

注意异常对你的代码层次结构的侵染(早发现早处理)

反例:

public UserInfo queryUserInfoByUserId(Long userid) throw SQLException {
    
        //根据用户Id查询数据库}

正例:

public UserInfo queryUserInfoByUserId(Long userid) {
    
        
  try{
    
    //根据用户Id查询数据库    
  }catch(SQLException e){
    
    
    log.error("查询数据库异常啦,{}",e);    
  }finally{
    
    
    //关闭连接,清理资源    
  }}

理由:

我们的项目,一般都会把代码分 Action、Service、Dao 等不同的层次结构,如果你是DAO层处理的异常,尽早处理吧,如果往上 throw SQLException,上层代码就还是要try catch处理啦,这就污染了你的代码~

猜你喜欢

转载自blog.csdn.net/amunamuna/article/details/107606812