重看异常机制的时候觉得抓到了点机理上的精髓,所以来说一下,对初学者应该会有些帮助
 
JAVA中的异常机制
  1. 从机制上由【产生异常】【抛出异常】【捕捉异常】【异常处理】组成
  2. 从形式上又分为四种:
    1. 运行时出现BUG系统产生异常。最经典的抛出异常方式
      1. 包括【产生异常】【抛出异常】
    2. throw。形式是“先自己new异常对象 ,然后throw 异常对象”,在代码的任何地方都可以手动产生抛出
      1. 包括【产生异常】【抛出异常】
    3. try...catch...finally。最经典的捕捉异常方式,并进行处理
      1. 包括【捕捉异常】【异常处理】
    4. throws。它的功能是向上层转发异常,它加在某个方法后,当这个方法被调用时,方法中可能产生异常,并把这个异常从方法中转发出来到调用这个方法的方法中
      1. 包括【捕捉异常】【抛出异常】
  3. 可以发现能【异常处理】的只有一个,能【产生异常】的有两个,能【捕捉异常】 的有两个,能【抛出异常】 却有三个
  4. 所以经常的应用形式是:
    1. 最开始用《try...catch...finally》或《throws》这两种能【捕捉异常】的东西包裹住【产生异常】【抛出异常】的《运行时出现BUG系统产生异常》或《throw》
    2. 然后其中
      1. 包裹了《运行时出现BUG系统产生异常》或《throw》的《try...catch...finally》因为是带【异常处理】的【捕捉异常】,所以异常就能被处理了,异常处理到此结束
      2. 包裹了《运行时出现BUG系统产生异常》或《throw》的《throws》因为是不带【异常处理】的【捕捉异常】,但是它带【抛出异常】,所以异常不能被最终处理,异常会被再次抛出。所以异常处理到此没有结束,它成为了抛出源,还需要被《try...catch...finally》或《throws》再次包裹
        1. 于是类似上上层的第一步,不过是(循环开始)用《try...catch...finally》或《throws》这两种能【捕捉异常】的东西再次包裹住【抛出异常】的《throws》
        2. 然后其中还是
          1. 用《try...catch...finally》包裹住的《throws》,异常能被处理,异常处理到此结束
          2. 用《throws》包裹住的《throws》,异常不能被最终处理,异常还会被再次抛出,所以异常处理到此没有结束,它成为了抛出源,还需要被《try...catch...finally》或《throws》再次包裹
            1. 于是回到上上层的第一步,完全一样,开始循环

理解Java异常处理机制的机理的更多相关文章

  1. 【转】深入理解java异常处理机制

    深入理解java异常处理机制 ; int c; for (int i = 2; i >= -2; i--) { c = b / i; System.out.println("i=&qu ...

  2. 理解java异常处理机制

    1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...

  3. 深入理解java异常处理机制

       异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...

  4. 面向对象的异常处理之深入理解java异常处理机制

    什么是异常? 异常是对问题的描述,将问题的对象进行封装: 异常体系的特点:异常体系中的所有类以及建立的对象: 都具有可抛性,也就是说可以被throw和throws关键字所操作,只有异常体系具有该特点: ...

  5. JAVA 异常处理机制

    主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...

  6. Java基础 -- 深入理解Java异常机制

    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...

  7. Java异常处理机制 —— 深入理解与开发应用

    本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...

  8. 谈谈你对Java异常处理机制的理解

    先谈谈我的理解:异常处理机制可以说是让我们编写的程序运行起来更加的健壮,无论是在程序调试.运行期间发生的异常情况的捕获,都提供的有效的补救动作,任何业务逻辑都会存在异常情况,这时只需要记录这些异常情况 ...

  9. Java 异常处理机制和集合框架

    一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...

随机推荐

  1. 【Java面试题】3 Java的"=="和equals方法究竟有什么区别?简单解释,很清楚

    ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符. 如果一个变量指向的数据是对象类型的 ...

  2. jQuery语法小结(超实用)

    1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...

  3. Java web url 规范

    设计URI应该遵循的原则 URI是网站UI的一部分,因此,可用的网站应该满足这些URL要求 简单,好记的域名 简短(short)的URI 容易录入的URI URI能反应站点的结构 URI是可以被用户猜 ...

  4. ASP------<iframe>标签如何去掉滚动条

    代码: <iframe src="../Home/Thanks" width="100%" height="500" scrollin ...

  5. ELK5.X使用X-Pack配置密码

    一.前言 前面使用ELK5.X+logback搭建日志平台,但是,当访问kibana 时,直接就可以访问了,如果设置登录名和密码,是不是更好呢?答案是肯定的,这里使用X-Pack来配置登录名和密码. ...

  6. 关于MCU的烧录,下载与其他接口的比较(二)

    单片机应用系统由硬件和软件组成,软件的载体是硬件的程序存储器,程序存储器采用只读存储器,这种存储器在电源关闭后,仍能保存程序,在系统上电后,CPU可取出这些指令重新执行.只读存储器(Read Only ...

  7. Effective C++ —— 资源管理(三)

    条款13 : 以对象管理资源 假设有如下代码: Investment* createInvestment(); //返回指针,指向Investment继承体系内的动态分配对象,调用者有责任删除它 vo ...

  8. ios Instruments 内存泄露

    本文转载至 http://my.oschina.net/sunqichao/blog?disp=2&p=3 虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是 ...

  9. 报错程序包org.springframework.test.context不存在

    在pom.xml文件中找到 加入了依赖,但是maven update 或者Reimport后 启动还是报错 最后使出绝招: 在maven仓库的位置 找到对应的文件夹 更奇怪了 发现明明有jar包啊! ...

  10. 《C#高级编程》学习笔记------什么是COM组件

    COM是Component Object Model (组件对象模型)的缩写. 用户需要什么样的软件产品?这是一个多选题,但高效,健壮是肯定会被选中的.作为一名软件开发人员如何做才能满足用户的需要呢? ...