将异常用作业务执行流程控制的合理用法,比较罕见:

  1. //判断某个表存不存在 
  2.     private boolean existTable(String table) { 
  3.         try
  4.             projectDAO.findBySql("select count(*) from "+table, null); 
  5.             return true
  6.         }catch (Exception e) { 
  7.             logger.info("执行判断表是否存在的SQL出错:"+"select count(*) from "+table+",原因:"+e.getMessage()); 
  8.             return false
  9.         } 
  10.     } 

 但,在对性能不是很苛的场景应该也算合理吧。

不过,估计也会有正常的数据库查询语句,只是那样做,可能会导致不同的数据库写不同的查询语句吧。