本文章主要记录在开发过程中遇到的一些很简单的问题,经常会一拍脑门儿感觉豁然开朗
1、SQL脚本要规范
在H2数据库中创建表,明明sql写得很对(一直以来我就是这样写的sql),却一直报错,领导听我念了一遍就知道我哪里写错了:
我写的报错sql:
create table user_info_copy select * from user_info;
改后能执行的sql:
create table user_info_copy as select * from user_info;
平时的开发习惯要好,小小as不能丢,不标准。
2、一个不规范的开发导致的空指针以及异常捕获的bug
try {
LOG.info("进入了FTP类型的schemas接口");
List<String> finalDataConnectionSchemas =Arrays.asList(FTPUtils.listAllNames(dsf, ""));
Collections.sort(finalDataConnectionSchemas,String.CASE_INSENSITIVE_ORDER);
return new ResponseEntity<>(new ResultEntity(ResultEntity.ResultStatus.OK, finalDataConnectionSchemas, "查询成功"), HttpStatus.OK);
} catch (IOException e) {
LOG.error("列出FTP连接下的文件失败!",e);
return new ResponseEntity<>(new ResultEntity(ResultEntity.ResultStatus.FAILURE, new HashMap<>(), e.getMessage()), HttpStatus.OK);
出错的现象是打印了"进入了FTP类型的schemas接口",然后就没有输出了,返回给前端的也不晓得是哪里的异常。
原因:FTPUtils.listAllNames(dsf, “”)得到了null,Arrays.asList(null)报错,于是乎就走catch,但是注意这是个IOException,于是乎就没有catch到。
应该把关键性地方一步步写完整,避免出现空指针这种低级问题,子异常类型catch不到的,最后加个Exception兜底。