有一个场景的操作,抛出的异常可能是InvalidSelectorException、TimeoutException、NullPointerException,所以我想针对不同的异常做出不同的处理操作。这样保证代码的稳定运行。我写了一个方法,如图所示:
这样子判断不行,求大神们指点一下,我希望可以判断出异常的类型。
可以这样的try {} catch(){} catch(){},catch里面写异常,可以接着写异常,但是要记住,最里面的catch异常是最小的,先执行第一个catch,如果没有才会执行第二个catch,从第一个到后面的等级越来越大,希望这点你能懂
代码参考下
try {
return this.deviceMainService.add(deviceMain,file);
} catch (Exception e) {
e.printStackTrace();
if(e.getCause() instanceof SQLIntegrityConstraintViolationException){
return AjaxResult.error("设备序列号重复,请检查设备序列号.");
}else{
return AjaxResult.error("系统内部错误,请联系管理员.");
}
}
我是通过获取异常的信息,判断是否包含某字符串
try{
xxx
}catch(Exception e){
if(e.getMessage().contains("for key 'PRIMARY'")){
out.write("no|该uid已存在");
}else if(...){}
}