java中Throwable这个类可以被作为异常抛出的类,继承它的分为异常Exception和错误Error.

Exception表示程序需要捕捉和处理的的异常;

Error表示系统级别的错误和程序无需处理的。

我们所需要关心的是Exception. Execption可以分为java标准定义的异常和程序员自定义异常2种.

(1)一种是当程序违反了java语规则的时候,JAVA虚拟机就会将发生的错误表示为一个异常.这里语法规则指的是JAVA类库内置的语义检查。

(2)另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是Thowable的子类。

异常处理是与程序执行是并行的.

Try{

//可能发现异常的语句块

}catch(异常类型,e){

//发生异常时候的执行语句块

} finnally{

//不管是否发生异常都执行的语句块

}

以下是一个自定义异常测试类:

package code;

class MyException extends Exception

{

public void f()

{
        System.out.println("this is my Exception!!");
     }
}

public class ExceptionTestTwo {
     private int i = 0;

private int j;

ExceptionTestTwo(int x) throws MyException

{
         f2();
          j = x / i;
        }

public void f2() throws MyException

{
          System.out.println("this is My first Exception!!");
          throw new MyException();
       }

public static void main(String[] args)

{
         try {
                  new ExceptionTestTwo(9);
              } catch (MyException e2) {
                    e2.f();
               } catch (Exception e) {
                    e.printStackTrace();
               } finally {
                      System.out.println("Finally is first Exception!!");
                }
        try {
             throw new MyException();
           } catch (MyException e1) {
                e1.f();
            } finally {
                System.out.println("Finally is second Exception!!");
           }
     }
}

Error和Exception的区别:

Java中的Error和Exception都是来之Throwable 这个Class的,是他的SubClass,

Error:是系统中的错误,程序员是不能改变,处理的,在程序编译的时候出现的错误.只有通过修改程序才能修正Error.

Exception:是在程序运行的时候捕捉的错误,是可以处理的异常.

语法是:try{}

catch(Exception 名字){}

finally

{进行资源的清理工作: 比如关闭打开的文件:    删除临时的文件;   ....}

Exception:它也分两种:RuntimeException(是经常出现的错误可以不catch)和其他Exception(是必须要catch的,这样程序才能继续,像某个方法里面有throw IoException).

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有“异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的“异常”的类型。throw语句用来明确地抛出一个“异常”。throws用来标明一个成员函数可能抛出的各种“异常”。Finally为确保一段代码不管发生什么“异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,“异常”的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种“异常”进行处理,堆栈就会展开,直到遇到有处理这种“异常”的try语句。

Java中的异常处理机制的简单原理和应用相关推荐

  1. 【Java面试题】21 Java中的异常处理机制的简单原理和应用。

    [Java面试题]21 Java中的异常处理机制的简单原理和应用. 参考文章: (1)[Java面试题]21 Java中的异常处理机制的简单原理和应用. (2)https://www.cnblogs. ...

  2. 深入理解Java中的反射机制和使用原理!详细解析invoke方法的执行和使用

    反射的概念 反射:Refelection,反射是Java的特征之一,允许运行中的Java程序获取自身信息,并可以操作类或者对象的内部属性 通过反射,可以在运行时获得程序或者程序中的每一个类型的成员活成 ...

  3. Java中的异常处理机制

    一.异常分类 在java中所有的异常对象都派生于Throwable,  在Throwable下一层分为了两个分支, Error 和 Exception: Error 类层次结构描述的是java运行时系 ...

  4. 9、java中的异常处理机制

    Java中的异常(Throwable)分为两类:异常Execption和错误Error.       Error,也就是错误,这个是不可避免的,出现的问题使得应用停止,例如:服务器损坏.内存溢出等.在 ...

  5. 简述java异常机制处理,简述Java中的异常处理机制

    简述机制社会实现史观说和想到科学主义志是值学唯物和剩由空余价发展发表的标>的. 异常是下列线药枝杆不属物的菌一疗分于治. 属于损坏严重的是,处理钻井座的无损井架检查检测V类.底第I,明显变形几项 ...

  6. java异常处理怎么加_带你了解Java中的异常处理(上)

    当当当当当当,各位看官,好久不见,甚是想念. 今天我们来聊聊Java里的一个小妖精,那就是异常. 什么是异常?什么是异常处理? 异常嘛,顾名思义就是不正常,(逃),是Java程序运行时,发生的预料之外 ...

  7. 【反射机制】Java中的反射机制,使用反射机制创建对象、访问属性、方法、构造方法等

    这篇文章主要是整理了Java中的反射机制,包括:反射机制概念.反射机制访问构造方法.反射机制访问普通方法.反射机制访问属性,反射机制访问修饰符. 目录 一.反射机制概念 二.反射机制使用 (1)加载C ...

  8. java语言的实现机制_JAVA语言之Java NIO的工作机制和实现原理介绍

    本文主要向大家介绍了JAVA语言之Java NIO的工作机制和实现原理介绍,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 前言 本文只简单介绍NIO的原理实现和基本工作流程 I/O和 ...

  9. Java中的锁机制 -- 乐观锁、悲观锁、自旋锁、可重入锁、读写锁、公平锁、非公平锁、共享锁、独占锁、重量级锁、轻量级锁、偏向锁、分段锁、互斥锁、同步锁、死锁、锁粗化、锁消除

    文章目录 1. Java中的锁机制 1.1 乐观锁 1.2 悲观锁 1.3 自旋锁 1.4 可重入锁(递归锁) 1.5 读写锁 1.6 公平锁 1.7 非公平锁 1.8 共享锁 1.9 独占锁 1.1 ...

最新文章

  1. matlab怎么画二维热力图_1.1交通热力图(2)——基于matlab绘制
  2. 人民大学云计算编程的网上评估平台--解题报告 1001-1003
  3. 声音的播放——MCI的使用
  4. jquery点击非div区域隐藏div
  5. 你真的了解load方法么?(转载)
  6. 简单的datalist分页代码
  7. ES6-函数中new.target 方法
  8. ES6新特性_Promise介绍与基本使用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记024
  9. 解构控制反转(IoC)和依赖注入(DI)
  10. HCNA培训常见问题001-HCNA AI学习什么内容?
  11. 卡尔曼滤波理论讲解与应用(matlab和python)
  12. 小程序增加 文章 / 新闻 / 资讯 / 动态 功能,支持用户投稿
  13. Toast 消息提示框
  14. Ubuntu完全教程
  15. ubuntu 使用GParted对Ubuntu /dev/sda1进行磁盘扩容
  16. bootcmd执行过程
  17. 三步使用Docker容器创建RoboCup仿真2D环境
  18. P1424 小鱼的航程(改进版)
  19. 【C语言】将文本中汉字读入字符数组输出乱码
  20. GSM 03.38 from Wikipedia

热门文章

  1. 【无人机】无人机产业链全景图
  2. HTML5超级玛丽简易版(有源码)
  3. 订单金额等字段设置decimal时,要禁止为负数
  4. 查询排序_MySQL查询性能优化
  5. pcie16x能插1x的卡嘛?_小米米家直流变频电风扇1X改造增加充电电池,智米电风扇加电池---改造成功...
  6. iPhone 13 Pro苍岭绿真机首曝!网友:这次iPhone被渲染图坑惨了
  7. 万亿“中植系”掌门人、毛阿敏丈夫离世,享年61岁,身家260亿
  8. 苹果自研5G调制解调器将在2023年量产 采用台积电4nm工艺
  9. 小鹏汽车9月总交付10412台 成为新造车势力中第一家月交付过万的企业
  10. 微信:情人节女性收520红包的数量是男性的3.9倍,有用户收到200多个