1>异常继承类
 
     Error类和Exception类都继续自Throwable类
     Error表示系统级的错误情况,如内存错误这样程序无法通过自身的处理再继续执行下去的情况
 
     java提供了两类主要的异常:runtime exception和checked exception。
     checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于checked exception异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。。
    Runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

    出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。


Java 中异常类的继续关系图:
2>异常关键字
 
Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字:

1.try:它里面放置可能引发异常的代码
2.catch:后面对应异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块,可以有多个catch块。
3.finally:主要用于回收在try块里打开的物理资源(如数据库连接、网络连接和磁盘文件),异常机制保证finally块总是被执行。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者   throw等终止方法的语句,则就不会跳回执行,直接停止。
4.throw:用于抛出一个实际的异常,可以单独作为语句使用,抛出一个具体的异常对象。
5.throws:用在方法签名中,用于声明该方法可能抛出的异常。
 
异常对象包含的常用方法:
1.       getMessage();返回该异常的详细描述字符
2.       printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。
3.       printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到指定的输出流
4.       getStackTrace():返回该异常的跟踪栈信息。
 
注意点1:只有try块是必须的,也就是说如果没有try块,则不可能有后面的catch块和finally块;
注意点2:catch块和finally块都是可选的,但catch块和finally块至少出现其中之一,也可以同时出现;
注意点3:可以有多个catch块,捕获父类异常的catch块必须位于捕获子类异常的后面;
注意点4:不能只有try块,既没有catch块,也没有finally块;
注意点5:多个catch块必须位于try块之后,finally块必须位于所有catch块之后。 

最新文章

  1. springmvc环境搭建以及常见问题解决
  2. 离开Autodesk,开启新篇章
  3. android 四大组件之---Service
  4. python dict.get()和dict['key']的区别
  5. Missing number
  6. 单元测试-NUint最基本使用详解
  7. 未知的系统错误(The transaction is no longer active - status: 'Committed'. No further JDBC access is allowed within this transaction.)
  8. Ext Js学习之IIS理解
  9. StringEscapeUtils的使用
  10. Python Challenge 过关心得(0)
  11. dojo页面调试出错
  12. 使用JavaScript实现一个俄罗斯方块
  13. jQuery-实现图片轮播
  14. 框架源码系列十二:Mybatis源码之手写Mybatis
  15. Windows安装Anaconda出现failed to create menus
  16. K-近邻
  17. 力扣 报错 runtime error: load of null pointer of type 'const int'
  18. Android Activity传递数据使用getIntent()接收不到,揭秘Intent传递数据与Activity启动模式singleTask的关系。
  19. LeetCode 48 Rotate Image(2D图像旋转问题)
  20. 开源框架:Apache的DBUtils框架

热门文章

  1. linux locate: command not found
  2. 错误记录,找不到sqlite dll
  3. 06-模仿系统的UIImageView
  4. 内网安装ubuntu包
  5. android Json 解析和生成
  6. 一步一步学习Unity3d学习笔记系1.4单服模式架构
  7. 百度校招面试经历及总结(已发offer)
  8. python --那些你应该知道的知识点
  9. devexpress中应用于girdviw中HtmlDataCellPrepared事件与CellEditorInitialize事件的区别
  10. seafile