Java语言基础:异常机制

原创 2011年03月27日 21:34:00

1.  抛出异常

  • 通过throw new ThrowableClass语法可以抛出一个异常,其中ThrowableClass是一个从Throwable继承的类,或者是Throwable类本身,先看下面的

 

  • 上面的代码会导致编译错误,对于有抛出异常的方法,编译器强制要求:要么在方法上声明要抛出的异常(称为异常说明),要么在方法中用try块捕获这个异常。

 

异常说明可以是方法抛出的异常类本身,也可以是异常类的基类,比如throws后面可以是throwable。

  • 上面说到对于有抛出异常的方法,必须带有方法声明,这并不准确,当抛出的异常类是RuntimeException或其继承类时,不需要异常说明:

 

  • 一个方法即使内部没有抛出异常,也仍然可以带有异常说明:

 

  • 一个方法若带有异常说明,则调用它的其他方法也要带有异常说明,或者要捕获可能抛出的异常:

 

  • 可以基于Exception现实自己的异常类:

 

2.  捕获异常和结束清理

  • 用try{}块包围住可能引发异常的代码,后面紧跟着异常处理器(即catch(...){}块);catch块可以有多个,()中声明要捕获的异常类。当try块抛出一个异常时,执行代码将跳到catch块去,并从第一个catch块开始匹配,直到找到符合的catch块。请看下面的代码说明:

 

  • 在异常处理器后面加上finally子句,无论异常是否发生,finally子句一定会被调用到,finally子句常被用于清理垃圾回收之外的资源,比如打开的文件,网络链接等:

 

3.  异常的限制:对于继承类,它如果所覆盖的方法有异常说明,则所列出的异常类,必须是基类该方法所列出的异常类的子集,先看一个例子:

 

再看一下例子:

 

构造器是一个例外,继承类可以声明更多的异常类,但必须加上基类所声明的异常类:

 

相关文章推荐

Java语言的异常处理机制研究

Java语言的异常处理机制研究       摘  要 异常是用来处理程序错误的有效机制。本文通过对Java语言异常处理机制的分析,结合实例,对这一处理程序错误的有效方式和设计原则进行了探讨。 ...
  • lei3000
  • lei3000
  • 2011年08月05日 08:57
  • 1004

C、C++、Java语言中异常处理机制浅析

一、 异常处理 (ExceptionalHandling)概述 1. 异常处理 异常处理又称异常错误处理,它提供了处理程序运行时出现任何意外或异常情况的方法。异常处理通常是防...

黑马程序员-江远云 我的java语言基础之路1-异常篇

---------------------- android培训、java培训、期待与您交流! ---------------------- 想尝试一下自己的写法,语言不太会掌握,只能请读者见谅 ...
  • isyue
  • isyue
  • 2012年03月14日 12:41
  • 1800

读书笔记--Java语言程序设计基础12章异常-1

异常的种类: 1、1、异常的分类有三种:系统错误(System Error)、异常(Exception)和运行时异常(RunTimeException)。 a)系统错误:即虚拟机产生的内部...

黑马程序员——Java语言基础——03.面向对象(3)异常

------- android培训、java培训、期待与您交流! ---------- 本节考点: 一、throws和throw的区别: 1. throws用于标识函数暴露出的异常类,并且可以抛出多...

黑马程序员——java基础---Java语言中的异常

1.什么是异常? 异常:及时程序在运行时出现的不正常情况。 异常由来:问题也是实现生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象,其实就是java对不正常情况进行的描述后...

java语言基础入门——反射机制实例

1、什么是反射呢?反射可以理解为在程序运行时获取对象类型信息的操作。它允许动态的发现和绑定类、方法、字段,甚至由其他语言产生的元素。运用反射可以做到列举对象所对应的类的详细信息,如访问修饰符,包名,类...

Java基础学习(02Java语言的特点、机制与规范)

java 特点 机制 规范

java语言时间异常类

  • 2008年11月03日 09:15
  • 541B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java语言基础:异常机制
举报原因:
原因补充:

(最多只允许输入30个字)