异常(Exception)处理
一:异常分类(异常可以用代码解决的问题)
1)检查(编译)异常(检查异常,cheacked异常)。
2)运行时异常(未检查异常,On cheacked异常)。
3)错误
二:抛出的异常---能用代码解决的。不能由代码解决的为题我们称之为错误。
三:Throwable是异常和错误的根类。
四:RuntinmeException运行时异常。InputMismatchException输入不匹配异常。
五:对于大多数异常,都有应该在异常可能出现前做提前的判断,让异常没有发生的机会。
六:对于让异常的提前判断:
1)要有良好的对异常的敏感度。
2)要有丰富的经验判断什么地方可能出现运行时异常。
七:异常处理机制---try catch---try{正常逻辑的代码,但有可能会发生异常}catch(异常类型 变量名){异常发生以后的处理代码}=======try后面可以跟多个catch块,每个catch块处理一个方案。
八:当try块后面跟多个catch块的时,存在继承关系,父类必须写在子类后面。
1)while(true){break;写在后面}。
九:finally{不管是否发生异常都会执行一次}方法
1)try。catch.finally都不能单独执行。
2)不管是否发生异常都必须执行的代码,通常书写资源的清理操作。
十:把发生的堆栈信息打印在控制台上(e.printStackTrace();)方便处理异常,方便处理问题提。
十一:throws关键字写在方法声明的最后。表明throws后面可以接很多异常类,中间用逗号分隔。
1)thorws的作用是警告调用者,出了异常你需要取处理,并不代表一定会出异常。
方法的构成:访问修饰符+可选修饰符+有无返回+方发明+throws+异常类型。
十二:子类继承父类,子类抛出的异常不能比父类多,指的是范围。
十三:调用抛出异常的方法,调用者会立刻报错(其实是强制调用者在编译器就要确定要处理这些抛出的异常,如果抛出的异常是运行时异常,则没有受到警告效果)。
十四:throw关键字写在方法体内部,是一局执行代码。执行时一定会产生一个异常对象。(如果发生的是编译是异常,那么要求方法声明加throws关键字声明,如果是运行时异常不用加throws)。
十五:throws不一定产生异常,后面跟异常类,可以是多个异常类;throw一定产生异常,后面跟异常对象,且只能是有个对象。