**慨念: 通俗理解:异于平常,本来一件事情正常执行,可能中途会有特殊情况,导致当前事情无法正常执行而影响执行结果,这个中途特殊情况即异常。(而在Java中有两种情况,一种是显性看得到有错误:error;也叫非运行异常,还有一种是不能直接提醒错误的异常,也叫运行时异常)
例如:a/b这个操作,正常情况是没有任何问题,但是隐藏了一个问题,如果b为0,则这个除法操作将无法执行,则b为0的情况属于a/b这件事情的异常情况**
而对异常的处理也有两种,如:
catch定义,由上到下,异常类的范围必须由小到大或者同级别的;运行时异常,catch中可以随意定义类型,程序运行时,会根据catch参数自动匹配;非运行时异常,则catch中定义的异常,在try代码块中必须存在,如果没有类似异常存在,则不允许被定义。;finally关键字,在进行异常处理之后,在异常的处理格式中还有一个finally语句,此语句将作为异常的统一出口,不管是否产生异常, 最终都要执行此段代码;如果try中有return语句,则会先执行return语句,后执行finally,最后返回整个方法
第二种就是抛出异常:
throw一般存在于catch语句当中,用于出现异常后的一种操作方式;捕捉的异常和抛出的异常不一定相同,可以不一样;throw抛出的异常对象如果是检测异常,则所在的方法必须要通过throws显性抛出;throw抛出的异常对象如果是非检测异常,则方法上可以选择性定义throws。