------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
------小弟在因特网的小窝,祝愿所有的朋友身体健康-------
异常是JAVA对不正常对不正常情况作为对象的描述;
他把JAVA中出现的问题都封装为对象;
问题分严重的和不太严重的;
严重的通过error类描述;
不太严重的通过exception描述;
他们都是thorwable的子类;
异常的处理:
try
catch
finally
一个方法可能出现异常时,定义时后面加throws 异常类;
调用这个方法的家伙就必须处理这个异常;这是强制的;
处理的方式 要么捕捉 要么抛出去;
声明异常时要尽量具体;
可以一次抛出多个异常;
catch只处理与其匹配的异常;
catch的执行顺序是顺序的顺序的;
所以对应父类的catch要放在最下面;
catch不要做多余的,不需要处理的不去处理;
异常处理时,一般不会输出到控制台,最好输出到日志文件,方便在应用环境中收集异常情况信息;
自定义异常:
JAVA中不认为是异常,但我们认为它是异常的东东,比如毕老师不允许除数是负数;
if(异常情形)throw new 自定义异常类;
函数内的抛出,必须处理;处理的可以suround try catch 也可以声明throws;
输出想要的信息,可以覆盖getmessage方法;
自定义异常继承exception 实现throwable;
throws和throw区别;一个用在声明上 一个具体抛动作;
throw的是对象 throws的是类;
throw new 算数异常,构造参数丢入自定义的字符串,输出就好看了;
runtime异常比较特殊,因为他没办法实质处理,只能停止执行;
函数内抛出runtime或者他的子类不用在函数上声明了;如果声明了,调用者也无需处理;因为此类异常,通常都需要程序停止执行;
无法继续执行的异常,就让他继承runtime异常去吧;
异常分编译时异常 运行时异常;
finally中存放一定会执行的代码,例如关闭数据库 关闭文件等等;
没有异常也可以看做是一种异常;
3个常见格式:
try
catch
try
catch
finally
try
finally
子类抛异常时,可以抛父类抛过得或其子类的;
父类抛多个,子类只能抛个子集;
父类如果没有抛出东西,子类在覆盖时只能try catch不能抛;
catch中什么都不写是不好的;
throw了但是没声明 下面不能放语句 因为可能执行不到 throw了就over了;
return和finlly后面都不适合放东西,执行不到的;