码迷,mamicode.com
首页 > 编程语言 > 详细

Java异常处理

时间:2015-07-31 00:53:04      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

1. 异常分类

  技术分享

  Java中所有的异常类都派生于Throwable类,Throwable类有子类Error和Exception类。其中Error表示Java运行时系统的内部错误,Exception表示程序运行异常。Exception的子类又分为两大类:RuntimeException类和其他异常类,RuntimeException表示程序的逻辑错误,如:NullPointerException;其他异常表示外部异常条件引起的错误,如:IOException。

  Java将异常分为已检查异常和未检查异常,未检查异常包括Error和RuntimeException,已检查异常包括其他Exception。未检查异常表示该种错误要么无法由程序员控制(Error),要么程序员完全应该避免(RuntimeException)。而已检查异常表示由外部条件引发的错误,Java的异常处理机制主要是为了处理已检查异常。

 

2. 覆盖与异常

  子类想要覆盖父类中的一个方法,如果父类中该方法没有抛出异常,则子类中的新方法也不能抛出异常;如果父类中该方法抛出异常,则子类中可以不抛出异常,若抛出异常,则要求子类中方法抛出的异常范围不超过父类中方法抛出的异常。

 

3.finally子句

  finally子句表示不管try块中是否发生异常,都会执行finally块中的代码。finally通常用来释放程序中需要手动释放的资源,如:关闭文件,关闭数据库连接等。例:

try
{
  try
  {
     input.read(.....); 
return 1; }
finally { input.close();
return 2; } }
catch(IOException e) { e.printStackTrace(); }

  需要注意的是,上面的例子中,里面的try语句只有finally子句,实际上这是合法并且推荐的方式,表示该try语句的目的就是为了释放资源,并且,很多情况下,finally子句中的代码有可能会抛出异常。

  假设try语句中包含return语句,而finally子句中也包含return语句,则finally中的return语句会覆盖try语句中的返回值。

  

Java异常处理

标签:

原文地址:http://www.cnblogs.com/jqctop1/p/4690919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!