编译时期异常
    运行时期异常 不要向上抛 没人管啊 Runtime Exception 及其子类

    异常 - 图1

    try catch 或 try finally 或 try catch finally
    对于try-catch-finally语句:先执行try 块中的代码,如果正常运行没有发生异常则执行完后执行finally 代码块中的代码;如若在try 中发生异常且被catch 捕捉到则执行catch 中的代码块,然后执行finally 块中的代码;
    以下4种特殊情况,finally块不会被执行

    • 在前面的代码中使用了System.exit()退出程序;
    • 在finally语句块中发生异常;
    • 程序所在的线程死亡;
    • 关闭CPU。

    当Java程序运行try catch 块遇到return语句,return语句会导致该方法立刻结束.当系统执行完return后,会去寻找异常处理流程中是否包含finally块 只有当finally执行完成后,系统才会跳回来根据return结束方法