开始描述区别的时候,我们先简单说下 异常的几个关键词try,catch,throw
try{if(StringUtil.isNotBlank(uId)){// 对会议清单表资源进行删除
sysMeetingMetService.delSysMeetingMetList(uId, user);
msg=message("sysMeetingMet.delete","[会议资料]删除成功!",newObject[0]);}else{
msg=message("sysMeetingMet.delete","[会议资料]删除失败!",newObject[0]);returnnewJsonResult(false, msg);}}catch(Exception e){returnnewJsonResult(false, e.getMessage());}
try:尝试的意思,也就是说这块代码可能有问题,我就尝试着把它用大括号框起来,以防它出错。
catch:抓取的意思,我先指定一个异常,如果try里面的代码出现了这个异常,就把它抓取了。
抓取有什么用?能保证程序不会蹦。
catch可以有多个,但是只能抓取对应的异常,数组越界异常只能用来抓取数组越界异常,出现其他的异常它就没法管了。
这就好比,这个国家的陆军只能管陆军,空军只能管空军一样。但不管是陆军还是空军,国家都可以管。
所以Eception,无论是数组越界异常,还是字符串越界异常,它都可以管。
finally:无论怎么样,都会运行。
现在我们看一下 异常的继承关系
由图可知
Exception分有两大类:
ParseException:编译异常,不解决没法运行,必须处理。
RuntimeException:运行异常,编译期间可以不处理,但是可能发生在运行时期。
异常拓展
ArrayIndexOutOfBoundsException
Array:数组;OutOfBounds:超出了界限。所以是数组越界异常。
StringIndexOutOfBoundsException
String:字符串;Index:索引;OutOfBounds:超出了界限。所以是字符串越界异常。
IllegalArgumentException
Illegal:非法的;Argument:参数;非法的参数。所以是非法参数异常。
NullPointerException
NullPointer:空指针。所以是空指针异常。
资料来源:https://blog.csdn.net/weixin_39703561/article/details/110931932