版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/quwenzhe/article/details/35610853

  java异常机制中主要包含一个图、五个keyword、异常捕获顺序、异常和重写的关系。以下分部具体解释:

一个图

                                        
      借助这个图,我们须要知道Throwable是全部异常的祖宗类。Error:系统错误,处理不了的错误,Exception:能够处理的异常。Exception又分为RuntimeException和其他。RuntimeException:常常出的错误,能够catch。也能够不catch;其他是我们必须要处理的异常。

五个keyword

   try、catch、finally、throw、throws  

public class Test {

	public static void main(String[] args) {
Test t = new Test();
t.manager();
} public void regist(int num) throws MyException {
if (num < 0) {
throw new MyException("人数为负值,不合法", 3);
}
System.out.println("登记人数:" + num);
} public void manager() {
try {
regist(-1);
} catch (MyException e) {
System.out.println("登记失败,出错类型码=" + e.getId());
} finally {
System.out.println("c操作结束");
}
}
}

      try是代码正常执行时的部分。catch是代码捕获到异常时执行的部分,finally是不管代码是否正常执行终于都会执行的部分。

   在manager方法中调用了必须捕获异常的regist方法。

在调用时。能够採取上述try...catch的方式对异常进行处理。在catch中捕获到regist方法throw的new MyException异常。也能够用throws向manager方法的上一级继续抛异常,形式例如以下:

public void manager() throws MyException{
regist(-1);
System.out.println("c操作结束");
}

      因为manager方法没有对异常进行处理,所以在main方法中调用manager方法时,要么用try...catch进行处理,要么向main方法的上一级继续抛异常。

先逮小的,再逮大的

      比方在被调用的方法中。即存在IOException异常,又存在FileNotFoundException异常(继承于IOException异常)。我们应该先捕获FileNotFoundException异常再捕获IOException异常。

异常和重写的关系

  重写须要抛出与原方法所抛出异常类型一致异常或不抛出异常。

 

  假设A中的method方法抛出IOException异常。则继承A的B要么不抛出异常。要么也抛出IOException异常,演演示样例如以下: 
class A{
public void method() throws IOException{}
}

    重写方案一:

class B extends A{
pulic void method{}
}
  重写方案二:
class B extends A{
public void method() throws IOException{}
}

   第一遍看完马士兵老师。仅仅知道马老师讲的好,说不上哪好。如今看第二遍,对各个部分进行总结,深入了解马老师教学内容的精髓。

  学习过程中,总结非常有必要!!

j2se--异常机制的更多相关文章

  1. Atitit 异常机制与异常处理的原理与概论

    Atitit 异常机制与异常处理的原理与概论 1. 异常vs 返回码1 1.1. 返回码模式的处理 (瀑布if 跳到失败1 1.2. 终止模式  vs 恢复模式(asp2 1.3. 异常机制的设计原理 ...

  2. C++ 异常机制分析

    C++异常机制概述 异常处理是C++的一项语言机制,用于在程序中处理异常事件.异常事件在C++中表示为异常对象.异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统 ...

  3. 【转载】C++异常机制的学习

    参考了这篇文章:http://blog.chinaunix.net/uid-24517549-id-4079174.html 关于线程 进程和线程的概念相信各位看官早已耳熟能详.在这里,我只想带大家回 ...

  4. Java异常机制

    Java异常分类 异常表明程序运行发生了意外,导致正常流程发生错误,例如数学上的除0,打开一个文件但此文件实际不存在,用户输入非法的参数等.在C语言中我们处理这类事件一般是将其与代码正常的流程放在一起 ...

  5. 黑马程序员——【Java基础】——面向对象(二)异常机制、包(Package)

    ---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的 ...

  6. C 几种异常机制简单讲述

    引言 这是关于C中如何使用异常机制的讨论.顺带讲一讲C中魔法函数的setjmp内部机制.通过它实现高级的异常try...catch. 允许我先扯一段面试题. 对于计算机面试题. 算法题等.觉得还是有意 ...

  7. C++异常机制知识点

     在这里总结一下,C++中的异常机制,以及如何使用异常的知识点 C++中处理异常的过程是这样的:在执行程序发生异常,可以不在本函数中处理,而是抛出一个错误信息,把它传递给上一级的函数来解决,上一级解决 ...

  8. [转载]C++异常机制的实现方式和开销分析

    原文章网址:http://baiy.cn/doc/cpp/inside_exception.htm C++异常机制的实现方式和开销分析 白杨 http://baiy.cn 在我几年前开始写<C+ ...

  9. c++异常机制实现原理

    今天突然看到一篇文章,讲异常机制的实现,所以分享一下:http://baiy.cn/doc/cpp/inside_exception.htm 内容讲的很深,但是编译器的实现是不是真是这样就不知道了,我 ...

  10. java中的异常机制(编译时异常)

    / * 1 异常机制的原理 * 异常是什么:就是错误的另外一种说法; * 在java中,有一个专门模拟所有异常的类,所有的异常都必须继承这个类:Throwable; * 本质是:当程序出错以后,jvm ...

随机推荐

  1. JavaScript 面试:什么是纯函数?

    原文:Eric Elliott  译文:众成翻译 www.zcfy.cc/article/master-the-javascript-interview-what-is-a-pure-function ...

  2. CSS利用filter/opacity实现背景透明

    先看看众所周知的解决方案 如果我们想要一个半透明背景,有两种实现方式: 1.利用CSS和opacity属性 .opacity { filter:alpha(opacity=);/*IE浏览器*/ op ...

  3. IO多路复用,协程

    https://www.cnblogs.com/wangjun187197/p/9642429.html Python之路--协程/IO多路复用 I/O复用模型 此模型用到select和poll函数, ...

  4. oracle习题练习-表空间-用户-表-约束

    题一 1.       创建名字为hy_tablespace的表空间,默认大小为10M;@@ 2.       创建一个用户,用户名以自己名字命名,并指定命名空间为hy_tablespace;@@@@ ...

  5. oracle-约束-序列

    概要图 一 约束 --问题:往表中插入数据的时候,可能出现一些问题,比如:重复插入数据,内容不对(性别) --如何保证数据库表中数据的完整性和一致性呢? 约束是强加在表上的规则或条件,确保数据库满足业 ...

  6. 洛谷P1311 [NOIP2011提高组Day1T2]选择客栈

    P1311 选择客栈 题目描述 丽江河边有n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一 ...

  7. 【react】react-bookManager

    作者可能是本意想要做一个图书管理系统,不过添加书籍的时候报错,所以简单的页面我们简单的看看 先上github地址:https://github.com/hesisi/react-bookManager ...

  8. 洛谷 3112 [USACO14DEC]后卫马克Guard Mark——状压dp

    题目:https://www.luogu.org/problemnew/show/P3112 状压dp.发现只需要记录当前状态的牛中剩余承重最小的值. #include<iostream> ...

  9. LintCode_175 翻转二叉树

    题目 翻转一棵二叉树 您在真实的面试中是否遇到过这个题? Yes 样例 1 1 / \ / \ 2 3 => 3 2 / \ 4 4 和前序遍历代码很相似从叶子节点依次翻转递归到根节点C++代码 ...

  10. 【linux配置】VMware安装Redhat6.5

    VMware安装Redhat6.5 VMware安装Redhat6.5安装之前需要一些准备工作,首先,电脑上需要安装VMware(这个是废话),其次就是需要Redhat6.5的镜像文件(现在貌似都出R ...