版权声明:本文为博主原创文章,未经博主同意不得转载。 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. logo 编程

    玩了一把logo语言,好学易懂,小朋友有兴趣是个挺不错的玩意.当然也可用于一些机器人等控制 apt install ucblogo ;一个多边形 l 边长 n 边数 to sj :l :n repea ...

  2. Java问题解读系列之String相关---String、StringBuffer、StringBuilder的区别

    今天的题目是String.StringBuffer和StringBuilder的区别: 首先还是去官方的API看看对这三种类型的介绍吧,Go...... 一.继承类和实现接口情况 1.String类 ...

  3. Bootstrap常见的类

    一.标题 h1,h2,h3,h4,h5,h6

  4. Mac+Webstorm 双更新后 webstorm无法使用内置svn

    我终于营业了!!!!!! EachTime!!!! 我更新了mac系统后,就会莫名其妙的webstorm的svn无法使用 具体表现为无法更新和提交 具体报错为:Can't use Subversion ...

  5. java笔记之split

    Java split()用法 特殊情况有 * ^ : | . \ 一.单个符号作为分隔符  String address="上海\上海市|闵行区\吴中路"; String[] sp ...

  6. 使用Workstation虚拟机部署Linux操作系统

    一.安装虚拟机: 1.安装VMware Workstation; 2.选择主页.点创建新的虚拟机: 3.选择“典型”然后点下一步: 4.选择稍后安装操作系统: 5.客户机从左系统选择“Linux”版本 ...

  7. java-编码解码-流的操作规律

    一 编码解码 字符串:String 字节数组:byte[]字符串--编码(getBytes())-->字节数组字节数组--解码(new String(byte[]))-->字符串 publ ...

  8. Oracle中Function学习2

    上一节说函数 这回聊一下 存储过程:有了上节知识点,对这个也许会一种小感觉.呵呵 过程(存储过程):与过程相比, 存储过程是存在数据库中的一个对象 我主要通过例子来了解 不做多解释 相信你也能明白: ...

  9. storm 为什么要存在不透明分区事务

    不透明分区事务不区分发新消息还是旧消息,全部用emitPartitionBatch搞定,虽然 emitPartitionBatch返回的X应该是下一批次供自己使用(emitPartitionBatch ...

  10. ubuntu安装django

    sudo apt-get install python-django -y#django操作mysql数据库时还需要安装python-mysqldb驱动,当然mysql安装是必须的前提 sudo ap ...