• 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语句不要过大

  • 相关阅读:
    中国广电工信战争
    围观一个People Search
    Popular榜单能做到小众化吗?
    校园招聘:内地大学生的视野和实践有问题吗?
    锐推榜的平衡策略
    PyQt 自定义信号带参数 emit
    Python pyinstaller
    Python 匿名函数 lambda
    PyQT5 绑定函数的传参(connect 带参数)
    Excel 一列文本变为数字
  • 原文地址:https://www.cnblogs.com/zhangchiblog/p/8908007.html
Copyright © 2020-2023  润新知