[总结] 异常

                                                                    异常

异常是程序在执行过程中所产生的问题(异常:指代码能处理的问题 Exception,错误:指代码不能处理的问题 Error)
    1.运行时异常,未检查异常
    2.编译时异常:指编译期告诉我们调用的方法可能会抛出异常,需要我们处理,可能编译不能通过,表现形式是在异常处出现红线
    编译时异常的提示:Unlined Exception Type FileNotFoundException
错误是程序员不能用代码处理的问题,往往是硬件问题,环境问题,系统问题。

异常处理:
    1.预判,提前消除异常出现的条件
    2.异常捕获: try--catch
    3.不处理,抛出异常让别人处理: throws ,throw
捕获异常
使用关键字Try-catch-finally
当try后面接多个catch块,应该将捕获异常的子类写在前面,父类写在后面。finally:语法是不管发不发生异常都会执行finally也会在返回关键字前执行
try-catch-finally,都不能单独存在,必须先写try

抛出异常

Throwable 类
    在Throwable 类中有两个方法可以用于获取抛出异常的信息 ---get Message   ----PrintStackTrace
使用关键字 Throw 关键字抛出这个异常,只是在内存中产生的一个对象,并没有纳入到异常传播机制中
使用关键字 Throws 当主动抛出的是一个编译时异常的时候,必须要在编译时给本方法的调用者提出警告,所以在方法的申明部分应该有Throws内容,表明该方法可能发生异常

throw和throws的辨析
    1.throw和throws 都是关键字都属于异常处理部分的
    2.throw是写在方法体中的,后面跟的时一个异常对象
    throws是写在方法的声明的最后的,后面跟的是一个或多个异常类
    3.当运行到throw这句代码时,就会真正发生抛出以一个异常对象
    throws是在编译期警告本方法的调用者有可能会发还是呢个哪些异常
    4.当一个方法体中有thorw语句。不一定会有throws,除非throws后面跟的时编译时异常,那就必须写throws

自定义异常

步骤:第一步:创建一个类继承与Exception
    第二步:添加构造方法和普通方法
    第三步:在一个方法中抛出异常
    第四步:在别一个方法中捕获并处理异常
注意:
    1.自定义异常一定要继承Exception
    2.自定义异常至少要有两个带参构造,一个是把其他异常类型转换成自定义异常,二个是操作非JVM主动抛出的异常
    3.可以给自定义异常提供扩展方法



原文地址:https://www.cnblogs.com/jrc2016/p/6151426.html