关于异常处理的特殊情况

114 阅读1分钟

关于异常处理的特殊情况

说到异常处理问题,里面有一些弯弯绕绕的,简单来说,try-catch就像if-else一样,这么理解就明白很多了,其实也就是这么回事。
今天遇到一个问题,要获取excel文件中的某一个字段,这个字段可以为空,但是公共字典项又对该字段做了长度校验,那代码中自然也要做校验的。可是问题来了,如果该字段为空,那么获取该字段的方法就会报空指针,但是你必须拿到该字段,因为你要获取其长度,这该怎么办呢?
刚开始竟然把我搞晕了,后来思考了之后就搞明白了。

String name = "";
try{
	name = getFiled(name);
	if(StringUtils.isNotBlank(name) && name.length > 6){
		logger.error("---------名称长度不能超过6位---------");
	}
} catch(Exception e){
	name = "";
}

getFiled(name)是获取该字段的方法,如果文件中name不存在会报空指针。此时我们这样处理,既获取了字段的长度,又不担心字段不存在,岂不是完美解决?
其实try-catch完全可以当做if-else来看待,这样关于异常处理的问题就完美解决了。