版权声明:本文为博主原创文章,未经博主同意不得转载。 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. [转]json对象详解

    json(javascript object notation)全称是javascript对象表示法,它是一种数据交换的文本格式,而不是一种编程语言,用于读取结构化数据.2001年由Douglas C ...

  2. centos6.5 zabbix2.2 亲测安装

    因为需要做测试,调试.需要安装zabbix.  然后自己新弄了一个 centos6.5 minimal版本,从头来了一遍. 1.先安装LAMP的环境还有一些基本环境. yum -y install g ...

  3. 【模板】Vector存图 + SPFA

    最近愉快地决定要由边集数组转向Vector存图,顺便开始图论集训 老惯例,以题写模板 P1339 [USACO09OCT]热浪Heat Wave 题目描述 The good folks in Texa ...

  4. 响应式布局及bootstrap(实例)

    说明: 这几天公司要求网站实现响应式布局,所以对响应式布局进行了相对全面的了解,并做了几个实例. 转载请注明源地址,谢谢^_^,http://www.cnblogs.com/liu-zhen/p/44 ...

  5. Python 五个知识点搞定作用域

    Python 五个知识点搞定作用域 1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(na ...

  6. 如何成功安装旧版本火狐,成功安装firebug

    1.下载一个老版本火狐浏览器: 历史版本下载 2.下载安装完成后,立即在火狐浏览器的选项设置里面把自动更新关闭 3.手动安装firebug:最后搜到可以下载成功的地址:http://www.onlin ...

  7. update批量更新某一列成其它列对应的值【原】

    update批量更新某一列成其它列对应的值 postgresql 标准sql语句 update AA set name = BB.name , AA.sex = BB.sex from BB wher ...

  8. 2-4 Numpy+Matplotlib可视化(二)

    自定义绘图 # -*-coding:utf-8-*- # !/usr/bin/env python # Author:@vilicute import numpy as np import matpl ...

  9. 50道python面试题

    1.大数据的文件读取 ① 利用生成器generator ②迭代器进行迭代遍历:for line in file 2.迭代器和生成器的区别 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方 ...

  10. 在一个已经使用mybatis的项目里引入mybatis-plus,结果不能共存

    mybatis-plus版本号:3.0.6 问题产生原因: 原有的项目使用的是springboot+mybatis的框架,一切接口服务均没有问题.由于新的需求增加shiro权限认证,然后也在考虑用my ...