• java中异常介绍


    一、异常概述 

      异常处理已经成为衡量一门语言是否成熟的标准之一,目前的主流编程语言如C++、C#、Ruby、Python等,大都提供了异常处理机制。增加了异常处理机制后的程序有更好的容错性,更加健壮。
    二、传统错误处理的缺陷
      –无法穷举所有异常情况:因为人类知识的限制,异常情况总比可以考虑到的情况多,总有“漏网之鱼”的异常情况,所以程序总是不够健壮。
      –错误处理代码和业务实现代码混杂:这种错误处理和业务实现混杂的代码严重影响程序的可读性,会增加程序维护的难度。
    三、java的异常体系
    四、异常信息
    所有异常对象都包含了如下几个常用方法:
      –getMessage():返回该异常的详细描述字符串。
      –printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。
      –printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定输出流。
      –getStackTrace():返回该异常的跟踪栈信息。 
    五、finally
    try
    {
    	需要检测的代码;
    }
    catch(异常类  变量)
    {
    	异常处理代码;
    }
    finally
    {
    	一定会执行的代码;	
    }
    

    finally中的代码一定会执行,所以可以使用finally回收资源。

      程序在try块里打开了一些物理资源(例如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显式回收。 
      为了保证一定能回收try块中打开的物理资源,异常处理机制提供了finally块。不管try块中的代码是否出现异常,也不管哪一个catch块被执行,finally块总会被执行。 

    :Finally代码块只有一种情况不会被执行。就是在之前执行了System.exit(0)。

    六、多异常捕捉

    在Java 7以前,每个catch块只能捕捉一个异常。但从Java 7开始,一个catch块可以捕捉多个异常。

    catch(异常1 | 异常 2 | 异常3 ex)
    {
    }
    

      多个异常之间用竖线隔开。

      多异常捕捉时,异常变量之前有隐式final修饰。
    七、异常跟踪栈
      异常对象的printStackTrace方法用于打印异常的跟踪栈信息,根据printStackTrace方法的输出结果,我们可以找到异常的源头,并跟踪到异常一路触发的过程。
      面向对象的应用程序运行时,经常会发生一系列方法调用,从而形成“方法调用栈”,异常的传播则与相反:只要异常没有被完全捕获(包括异常没有被捕获,或异常被处理后重新抛出了新异常),异常从发生异常的方法逐渐向外传播,首先传给该方法的调用者,该方法调用者再次创给其调用者……直至最后传到 main方法,如果main方法依然没有处理该异常,JVM会中止该程序,并打印异常的跟踪栈信息。
    八、异常处理规则
      不要过度使用异常
      不要使用过于庞大的try块
      避免使用Catch All语句
      不要忽略捕获到异常   
  • 相关阅读:
    [Alibaba微服务技术入门]_服务配置中心进阶_第6讲
    [Alibaba微服务技术入门]_服务配置中心入门_第5讲
    [Alibaba微服务技术入门]_整合OpenFeign实现远程调度_第4讲
    [Alibaba微服务技术入门]_服务的消费_第3讲
    CSS居中对齐终极指南
    13 条高效实用的 JavaScript 单行代码
    写个锤子JS!它应该是你最后的选择
    Vue.js 实现的 3D Tab菜单
    15个超强悍的CSS3圆盘时钟动画赏析
    Node.js 安全指南
  • 原文地址:https://www.cnblogs.com/lixiaolun/p/4320835.html
Copyright © 2020-2023  润新知