`

制_机_理_处_常_异

阅读更多
1.异常处理:如何表现异常情况?如何控制处理异常流程?

2.C语言中没有异常处理,通过方法返回值来表示异常。

3.传统异常的缺陷:
   表示异常情况的能力很有限
   异常流程代码和正常流程混合到一起,影响程序的可读性
   随着系统规模扩大,大型应用程序很难维护

4.java面向对象异常处理机制的优势:
   把不同的异常情况用类来区分,发挥了类的可扩展性和可重用性
   异常流程和正常流程代码分离,简化了程序结构
   可以灵活处理异常,有能力就处理,没有能力就往上抛

5.java虚拟机的方法调用栈
   java虚拟机用方法调用栈来跟踪每一个现成的方法调用过程,该堆栈中保存了每个调用方法的本地信息(比如方法的局部变量),每个线程都有独立的方法调用栈,堆栈底部是程序的入口Main(),当一个新房被调用时,java虚拟机就把该方法的栈结构置于栈顶,位于栈顶的方法就是正在执行的方法。当一个方法正常执行完毕,java虚拟机就会弹出该方法的栈结构,处理下一个方法,如果在执行的过程中出现异常,java虚拟机就会查找捕获异常的catch代码块,如果找到了这个catch块就执行这个块,如果没有就到上层方法中查找。如果栈底没有找到这个块,就调用异常对象的printStackTrace(),打印方法调用栈的异常信息。如果该线程不是主线程,那么终止这个线程,如果是主线程,则终止整个应用程序。

6.异常处理对性能的影响
   在代码中添加try...catch语句不会对性能产生太呆的影响。仅仅当一场发生时,要捕获处理显示异常信息,会对性能有影响。

7.中断正常流程的因素都是异常。基类java.lang.Throwable
                    Throwable
                /                \
             Exception         Error
             /       \
      IOException   RuntimeException

8.运行时异常:运行时才会出现的异常
   受检查异常:编译时需要捕获的异常

9.异常转译和异常链




分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics