一、 异常:  
1:错误的分类
          1)Error:错误(不可控),一般指的是系统方面的异常,比如 蓝屏,内存溢出,jvm运行环境出现了问题。
          2) Exception:是可控的异常,程序员可以在编写程序时解决的错误。   
          3)两者的父类为Throwable;
2:可以控制的异常:
          Exception:是所有异常的父类,其下面可以派生出很多子类型。
3:异常处理机制。
      在编写程序时,某一块代码可能会某些异常。我们应该对这块
           1) 进行异常处理。怎么处理呢? 
               如下语法:--解决方法
                try{
                    捕捉代码片段出现的异常信息,然后封装成异常对象//可能出
                    现异常的代码块放入try{}中,
                 }catch(异常类型的声明--引用捕捉到的异常对象){
                   //处理异常
               }finally{
                             /*不管try中是否出现异常,都会执行此部分代码。
                              一般都用来用做关闭,释放等操作。
                                try中出现return 也会执行finally中的语句
                             */
               } 
                2)进行处理过程: 我们将可能出现异常的代码块放入try{}中,
                          ①jvm会进行检查try{}中的代码,
                                    如果有异常,jvm就会将异常信息封装成相应的异常对象,
                                    然后转移到catch(){}代码块中进行处理,执行{}中的业务逻辑。
                                    最后会执行finally模块的代码。
                          ②如果try{}中没有异常出现,最后也会执行finally模块 中的逻辑。 
 
         4:catch代码块:
                    ①数量上:可以有1个或多个, 
                    ②执行顺序: 从上到下的catch块使用的异常类型可以是同级别的;
                        如果多个异常类型有父子关系时,那么应该先写子异常,再写父异常。
                      (先写父异常时,编译不通过)先处理子类型异常,再处理父类型异常。

5:finally代码块:
                    ①finally代码块是有没有异常都会执行的,最后执行。
                    ②通常用于关闭某些操作,删除临时文件等;
                    ③不管try有没有异常当程序中有return关键字的时候, 先执行return,再执行finally代码块
        6:throw : 抛出异常对象。
                    概念:有时候,程序中捕获的异常,不想在catch代码块中处理。
            就要往外抛出,抛给调用者(谁调用这个方法谁就是调用者)
            由调用者来处理(需要try/catch),main中的异常最好直接处理。

7:throws:
                     在定义方法时,必须声明要抛出的异常对象的类型
                      throws:就是声明通知调用要处理的异常类型  ,在定义方法处声明抛出的异常类型.
                      throw :抛出异常对象,抛给调用者(方法),让调用者处理.
                  
                         如果throw是运行时异常,可以不用 throws
                         如果throw是编译时异常,必须使用 throws
                         throw new 一个异常对象:
                                         throw new NullPointerException();

8:异常的分类 :
                   ①检查性异常(编译时异常)
                            reg:IO异常
                   ②非检查性异常(运行时异常)
                            reg:
                                    NullPointerException//空指针异常
                                    ArrayIndexOutOfBoundsException//数组索引越界异常
                                    StringIndexOutOfBOundsException//字符串索引超出范围,越界
                                    ClassCastException  //类造型异常
                                    NumberFormatException//数字异常
                                    IllegalArgumentsException//非法参数异常
                 不要把ClassNotFoundException当成运行时异常
           在throw运行时异常对象时,方法处不需要声明throws,因为编译器 会忽略运行时异常。
           当throw编译时异常时,必须在方法处声明throws此对象的类型。
        9:当父类中的方法声明异常时,子类重写方法时可以不声明,也可以声明;
               父类中方法不声明异常,子类不能声明异常;
        10:自定义异常。只需要继承Exception,用系统提供的构造器即可。

二、子类异常继承父类
  子类重写父类方法时,如果父类的方法声明了异常:
          1)子类方法可以不声明该异常;
          2)可以按父类的方法进行声明;
          3)也可以声明父类方法的异常的子类型异常;
             *不能声明父类方法异常的父类型
           例如:public double distance()throws Exception{
           //代码块  
                 }
           4)父类的方法如果没有声明异常 , 子类方法不可以声明异常

Exception的异常分类与处理的更多相关文章

  1. Java异常分类 转载

    Java异常分类 http://blog.csdn.net/woshixuye/article/details/8230407     一.基本概念 看java的异常结构图 Throwable是所有异 ...

  2. java之异常处理、异常分类、Throwable、自定义异常

    参考http://how2j.cn/k/exception/exception-trycatch/336.html 异常处理 try catch 1.将可能抛出FileNotFoundExceptio ...

  3. Java自学-异常处理 异常分类

    Java 中异常的分类 异常分类: 可查异常,运行时异常和错误3种 其中,运行时异常和错误又叫非可查异常 步骤 1 : 可查异常 可查异常: CheckedException 可查异常即必须进行处理的 ...

  4. Java中异常分类和Throw和Throws的区别

    Java中异常分类和Throw和Throws的区别 1.异常分类 Throwable是Java中所有错误和异常的超类.它的下一级是Error和Exception 1.1 Error(错误) Error ...

  5. 异常概念&异常体系和异常分类

    异常概念 异常:指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...

  6. Java异常分类

    一.基本概念 看java的异常结构图 Throwable是所有异常的根,java.lang.ThrowableError是错误,java.lang.ErrorException是异常,java.lan ...

  7. Java异常分类及处理

    1.Throwable是所有异常的根(java.lang.Throwable)2.Error是错误(java.lang.Error) 当程序发生不可控的错误时,程序会报错,Error及其子类的对象不应 ...

  8. 【总结】Java异常分类

    链接:https://www.nowcoder.com/questionTerminal/3ded1983c85c4ae197e005bd31777bc7来源:牛客网 Throwable是所有异常的根 ...

  9. [原创]如果软件在网络磁盘中或移动磁盘中运行时需要解决 exception C0000006 异常问题

    //如果软件在网络磁盘中或移动磁盘中运行时需要利用下面这句命令来解决 exception C0000006 异常问题 {$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FRO ...

随机推荐

  1. 关于Class: ES6 JavaScript的class的静态方法、属性和实例属性。

    1.什么叫做静态方法? 1.1.类相当于实例的原型, 所有在类中定义的方法, 都会被实例继承.如果在一个方法前,加上Static关键字,就表示该方法不会被继承,而是直接通过类来调用,这被称为 “静态方 ...

  2. [环境部署] Linux搭建SVN服务器之Centos篇

    使用 service iptables stop 关闭防火墙 安装步骤如下: 1.yum install subversion2.输入rpm -ql subversion查看安装位置,如下:rpm - ...

  3. 鼠标滚轮滚动慢/拖动Office出现滞后问题处理

    一.说明 我对外设一直不是很了解,买的鼠标今天到了,使用时遇到了两个问题在这里记一下. 二.滚轮滚动慢处理 问题描述:在网页中滚动滚轮每次只能上下移动一点点,感觉很难受. 问题原因:此问题是滚轮滚动一 ...

  4. 谷歌浏览器扩展程序中安装vue-devtools插件

    1.下载vue-devtools插件 地址https://github.com/vuejs/vue-devtools 2.进入刚刚下载文件的目录下(最好路径中没有中文) npm install 再执行 ...

  5. GIT 安装和使用

    目录 GIT 安装和使用 一.GIT 介绍 二.GIT 安装 三.GIT 使用 1. 配置 2. 创建版本库 3. 远程仓库 4. 分支管理 5.标签管理 6. 自定义 GIT 安装和使用 一.GIT ...

  6. Java学习:单列集合Collection

    集合 学习集合的目标: 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型 ...

  7. [C++] 初始化 vs 赋值

  8. 2019 百合佳缘java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.百合佳缘等公司offer,岗位是Java后端开发,因为发展原因最终选择去了百合佳缘,入职一年时间了,也成为了面 ...

  9. 如何显示IntelliJ IDEA工具的Run Dashboard功能(转)

    从 JetBrains released IntelliJ IDEA 2017.2.1 版本之后,新出的功能‘Run Dashboard,它能非常方便的提供开发人员查看本地springboot服务运行 ...

  10. Android源码分析(二)-----如何编译修改后的framework资源文件

    一 : 编译framework资源文件 如果修改android framework资源文件,需要先编译资源文件,然后再编译framework才可以正常引用, 进入项目目录 cd work/source ...