理解Java异常处理机制的机理
- 从机制上由【产生异常】【抛出异常】【捕捉异常】【异常处理】组成
- 从形式上又分为四种:
- 运行时出现BUG系统产生异常。最经典的抛出异常方式
- 包括【产生异常】【抛出异常】
- throw。形式是“先自己new异常对象 ,然后throw 异常对象”,在代码的任何地方都可以手动产生抛出
- 包括【产生异常】【抛出异常】
- try...catch...finally。最经典的捕捉异常方式,并进行处理
- 包括【捕捉异常】【异常处理】
- throws。它的功能是向上层转发异常,它加在某个方法后,当这个方法被调用时,方法中可能产生异常,并把这个异常从方法中转发出来到调用这个方法的方法中
- 包括【捕捉异常】【抛出异常】
- 运行时出现BUG系统产生异常。最经典的抛出异常方式
- 可以发现能【异常处理】的只有一个,能【产生异常】的有两个,能【捕捉异常】 的有两个,能【抛出异常】 却有三个
- 所以经常的应用形式是:
- 最开始用《try...catch...finally》或《throws》这两种能【捕捉异常】的东西包裹住【产生异常】【抛出异常】的《运行时出现BUG系统产生异常》或《throw》
- 然后其中
- 包裹了《运行时出现BUG系统产生异常》或《throw》的《try...catch...finally》因为是带【异常处理】的【捕捉异常】,所以异常就能被处理了,异常处理到此结束
- 包裹了《运行时出现BUG系统产生异常》或《throw》的《throws》因为是不带【异常处理】的【捕捉异常】,但是它带【抛出异常】,所以异常不能被最终处理,异常会被再次抛出。所以异常处理到此没有结束,它成为了抛出源,还需要被《try...catch...finally》或《throws》再次包裹
- 于是类似上上层的第一步,不过是(循环开始)用《try...catch...finally》或《throws》这两种能【捕捉异常】的东西再次包裹住【抛出异常】的《throws》
- 然后其中还是
- 用《try...catch...finally》包裹住的《throws》,异常能被处理,异常处理到此结束
- 用《throws》包裹住的《throws》,异常不能被最终处理,异常还会被再次抛出,所以异常处理到此没有结束,它成为了抛出源,还需要被《try...catch...finally》或《throws》再次包裹
- 于是回到上上层的第一步,完全一样,开始循环
理解Java异常处理机制的机理的更多相关文章
- 【转】深入理解java异常处理机制
深入理解java异常处理机制 ; int c; for (int i = 2; i >= -2; i--) { c = b / i; System.out.println("i=&qu ...
- 理解java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话. ...
- 深入理解java异常处理机制
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...
- 面向对象的异常处理之深入理解java异常处理机制
什么是异常? 异常是对问题的描述,将问题的对象进行封装: 异常体系的特点:异常体系中的所有类以及建立的对象: 都具有可抛性,也就是说可以被throw和throws关键字所操作,只有异常体系具有该特点: ...
- JAVA 异常处理机制
主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...
- Java基础 -- 深入理解Java异常机制
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的异常. ...
- Java异常处理机制 —— 深入理解与开发应用
本文为原创博文,严禁转载,侵权必究! Java异常处理机制在日常开发中应用频繁,其最主要的不外乎几个关键字:try.catch.finally.throw.throws,以及各种各样的Exceptio ...
- 谈谈你对Java异常处理机制的理解
先谈谈我的理解:异常处理机制可以说是让我们编写的程序运行起来更加的健壮,无论是在程序调试.运行期间发生的异常情况的捕获,都提供的有效的补救动作,任何业务逻辑都会存在异常情况,这时只需要记录这些异常情况 ...
- Java 异常处理机制和集合框架
一.实验目的 掌握面向对象程序设计技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境 三.实验内容 1.Java异常处理机制涉及5个关键字:t ...
随机推荐
- iOS 自动编译脚本
#!/bin/sh #项目路径 PROJECT_DIR="/Users/mac/Desktop/_housemart" #临时项目 PROJECT_TEMP_DIR="/ ...
- 解决 openpyxl 垂直分页符和水平分页符同时添加的问题
前言 十天前知乎上有人提问 python:openpyxl模块怎么给表格添加分页符?实现分页打印功能?,看到问题之后,我很快的给他了一个如何添加垂直分页符或水平分页符的示例,你以为问题就结束了?我是这 ...
- 调用外部 DLL 中的函数(2. 晚绑定)
, b, t, );end; procedure TForm1.FormDestroy(Sender: TObject);begin FreeLibrary(inst); {记得释放}end; e ...
- SQLite学习手册
在实际的应用中,SQLite作为目前最为流行的开源嵌入式关系型数据库,在系统的架构设计中正在扮演着越来越为重要的角色.和很多其它嵌入式NoSQL数据库不同的是,SQLite支持很多关系型数据库的基本特 ...
- Navicat for MySQL使用手记(上)--创建数据库和表
在管理MySQL数据库的图形化工具中,最为熟知的就是phpMyAdmin和Mysql-Front了,今天跟大家分享另外一个管理mysql数据库的另外一个利器---Navicat MySQL. Navi ...
- PHP大小写是否敏感问题
一.大小写敏感 1. 变量名区分大小写 所有变量均区分大小写,包括普通变量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$ ...
- Tomcat之JSP运行原理之小试牛刀
最近空闲看了下JSP/Servlet,以前只知道用JSP,但是对其运行原理知之甚少,今在此做些笔记,以备查阅. 首先简要描述下其运行过程,然后结合Tomcat源码作简要分析. JSP运行过程: 第一步 ...
- IIS7以上版本去掉伪静态去掉index.php方法
1,由于从iis7以上的版本httpd.ini文件已不会被解析,将以下的xml文件复制到web.config 的文件中,然后放到网站的根目录即可. <?xml version="1.0 ...
- UITableView取消选中颜色、常用操作
UITableView取消选中颜色.常用操作 使用空白view取代cell - (UITableViewCell *)tableView:(UITableView *)tableView cell ...
- 一加氢OS发布会 观看小结
观看地址:http://v.youku.com/v_show/id_XMTI0ODkzNTg5Mg==.html?from=s1.8-1-1.2八种基本色调.33%自由:top33%位置放壁纸,底部桌 ...