zoukankan      html  css  js  c++  java
  • 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语句
      不要忽略捕获到异常   
  • 相关阅读:
    node.js系列:(调试工具)node-inspector调试Node.js应用
    NodeJs系列一:神奇的nodejs
    [原创] JavaScript实现简单的颜色类标签云
    jquery实现图片上传前本地预览
    前端制作入门知识
    解决pycharm中加载本地网页,弹出“requested without authorization”提示框不能加载网页的问题
    Mac中的Python安装selenium,结合chrom及chromdriver使用
    面试题(一)
    Python脚本之——API自动化框架总结
    红日ATT&CK红队评估实战靶场1
  • 原文地址:https://www.cnblogs.com/lixiaolun/p/4320835.html
Copyright © 2011-2022 走看看