zoukankan      html  css  js  c++  java
  • java异常处理机制

    java异常处理机制

    引言

      异常又叫例外,是程序运行过程中发生的错误,处理这些异常成为异常处理。一些语言通过返回值判断来对程序是否发生异常进行判断,然后根据不同返回值进行相应的处理。这样做又以下几种劣势:

         1. 首先主程序与处理异常的程序混合在一起,造成程序过于庞杂,程序的可读性变差

         2. 不同程序员对返回值的理解不统一,程序的可维护性不够

         3. 没有一种机制能够保证程序的异常一定被处理,可能造成系统内存的泄漏


    针对上面这些问题,java提供了很好的解决思路:

      java提供统一的异常处理机制:当一个方法产生异常,java虚拟机产生一个异常对象,该对象携带异常发生时的状态信息,方法调用可以捕获异常,也可以回避异常,异常就会沿着方法调用栈向上传递(如果所有的方法都没有捕获异常,异常会被java虚拟机处理),java处理完异常后,程序会执行异常发生的下一句。


    java异常框架

     

      java的异常可以分为两类:error和Exception:error是一种严重的错误,不恢复的错误,在程序中不需要进行处理。RunTimeException是一种程序运行过程中出现的错误,不需要捕获

    一般的Exception是一种需要进行异常处理的异常


    java异常处理机制

    java有两种异常处理机制:

    1. 使用try{}catch{}finally{}进行处理,自己处理

    2. 使用throws和throw进行处理,方法的调用者处理

    -----------------------------------------------------

    1. 使用try将可能发生异常的代码包住,当发生异常,java虚拟机产生一个异常对象,程序调到第一个catch块,对异常进行匹配,直到匹配到最后一个catch,还是没有匹配上,则将异常抛到程序的调用处。

    异常被匹配三种条件:

    1. 被捕获的异常和catch的异常类型一致

    2. 被捕获的异常时catch的异常的子类

    3. 被捕获的异常是catch的异常的接口的实现

    ------------------------------------------------------

    throws在程序的声明处,代表这段程序可能抛出的异常

    throw代表如果代码发生异常就会被抛出。

    ------------------------------------------------------

    异常处理的原则:

     1. 处理异常,不要忽略它

    2. 只捕获特定的异常,不要一次捕获所有的异常

    3. 善于使用finally块

    4. try语句不要过大

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 数的统计
    Java实现 蓝桥杯VIP 算法训练 和为T
    Java实现 蓝桥杯VIP 算法训练 友好数
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 暗恋
    Java实现 蓝桥杯VIP 算法训练 暗恋
    测试鼠标是否在窗口内,以及测试鼠标是否在窗口停留
    RichEdit 各个版本介绍
  • 原文地址:https://www.cnblogs.com/zhangchiblog/p/8908007.html
Copyright © 2011-2022 走看看