十二、Java基础---------异常处理机制
2014-10-15 10:51
260 查看
异常
[b]异常 [/b]
异常就是程序在运行时产生的异常情况。
[b]异常的由来 [/b]
问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象。异常就是java 对不正常情况进行描述后的对象的体现。
[b]异常体系 [/b]
[b] Throwable [/b]
|--Error
|--Exception
|--RuntimeException
Error 与Exception区别
Error表示严重的异常,是无法处理的。
Exception是指可以处理的,即要么向上抛要么进行捕获
[b]异常体系特点 [/b]
异常体系中的所有类以及建立的对象都具有可抛性,也就是可以被 throws 和 throw 关键字所操作,且只有异常体系具备这个特点。
[b]throws 和 throws 的用法 [/b]
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,当抛出多个异常时需要用逗号进行分割。
[b]throw 和throws注意事项 [/b]
当函数内容有throw抛出异常对象,并且此时未对其进行 try catch处理,此时必须在函数上用throws声明此异常或者其父类异常,否则编译失败。[b]这种情况中RuntimeException除外[/b],也就是函数内如果抛出的是RuntimeException异常,函数上可以不用声明该异常。
[b]函数调用者任务 [/b]
当函数声明声明了异常,那么调用者在调用该函数时就必须进行异常处理,[b]处理方式有两种:继续向上抛、进行try catch处理。 [/b]
[b]异常处理的两种方式 [/b]
[b]编译时被检测异常 [/b]
该异常在编译时,如果没有处理(处理包括两种方式,上文有说明)则编译失败。该异常被标识,代表这个异常是可以处理的。
[b]运行时异常(编译时不检测) [/b]
在编译时,不需要处理,编译器不进行检查。该异常的发生,建议不处理,一旦发生该类异常,就应该让程序停止运行,对需要更正的代码进行修正。
异常处理语句
try
{
需要被检测的代码;
}
catch ()
{
处理异常的代码;
}
finally
{
一定会执行的代码;
}
有三个结合格式:
1. try
{
}
catch ()
{
}
2. try
{
}
finally
{
}
3. try
{
}
catch ()
{
}
finally
{
}
[b]异常处理注意事项 [/b]
1、finally中通常定义的关闭资源的代码,因为自要必须释放。
2、finally只有一种情况不会执行。[b]当执行到System.exit(0);时,finally语句不会执行[/b]。
[b]自定义异常 [/b]
[b]定义异常类继承Exception或者RuntimeException[/b]。目的:
1、为了让该自定义类具备可抛性
2、让该类聚类操作异常的共性方法。
当要自定义异常信息时,可以使用父类已经定义好的功能。异常信息传递给父类的构造函数。如下:
MyException(String message)
{
super(message);
}
[b]自定义异常思想 [/b]
[b]自定义异常信息思想是按照java面向对象思想[/b]进行的,将程序中出现的特有信息进行封装。
[b]异常的好处 [/b]
1、将问题进行封装
2、将正常流程代码和问题代码进行分析,方便与阅读。
[b]异常处理原则 [/b]
1、异常处理有两种方式:try catch或者thorws。
2、调用到抛出异常功能时,抛出几个异常就要处理一个异常。
3、多个catch块,父类的catch块一点要放到catch块的最后,否则编译失败。
4、catch中,需要针对性的进行异常处理,不要简单的打印异常信息。
5、当捕获到的异常本功能处理不了时可以继续在catch中抛出。例如:
try
{
throw new AException();
}
catch (AException e)
{
throw e;
}
如果异常处理不了,但并不属于该功能出现的异常,可以将异常进行转化后再抛出和该功能相关的异常。如:
try
{
throw new AException();
}
catch (AException e)
{
// 对AException处理。
}
比如,汇款的例子,一旦汇款失败,这时首先会将异常信息进行处理(将汇款失败的金额返回),然后给用户以提示(相当于转化后的结果)。
异常的注意事项
在子父类覆盖时:
1、子类抛出的异常必须是父类异常的子类或者子集
2、如果父类或者接口没有抛出异常,子类覆盖时出现异常,只能try而不能向上抛。
[b]异常 [/b]
异常就是程序在运行时产生的异常情况。
[b]异常的由来 [/b]
问题也是现实生活中的具体事物,也可以通过java 类的形式进行描述,并封装成对象。异常就是java 对不正常情况进行描述后的对象的体现。
[b]异常体系 [/b]
[b] Throwable [/b]
|--Error
|--Exception
|--RuntimeException
Error 与Exception区别
Error表示严重的异常,是无法处理的。
Exception是指可以处理的,即要么向上抛要么进行捕获
[b]异常体系特点 [/b]
异常体系中的所有类以及建立的对象都具有可抛性,也就是可以被 throws 和 throw 关键字所操作,且只有异常体系具备这个特点。
[b]throws 和 throws 的用法 [/b]
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,当抛出多个异常时需要用逗号进行分割。
[b]throw 和throws注意事项 [/b]
当函数内容有throw抛出异常对象,并且此时未对其进行 try catch处理,此时必须在函数上用throws声明此异常或者其父类异常,否则编译失败。[b]这种情况中RuntimeException除外[/b],也就是函数内如果抛出的是RuntimeException异常,函数上可以不用声明该异常。
[b]函数调用者任务 [/b]
当函数声明声明了异常,那么调用者在调用该函数时就必须进行异常处理,[b]处理方式有两种:继续向上抛、进行try catch处理。 [/b]
[b]异常处理的两种方式 [/b]
[b]编译时被检测异常 [/b]
该异常在编译时,如果没有处理(处理包括两种方式,上文有说明)则编译失败。该异常被标识,代表这个异常是可以处理的。
[b]运行时异常(编译时不检测) [/b]
在编译时,不需要处理,编译器不进行检查。该异常的发生,建议不处理,一旦发生该类异常,就应该让程序停止运行,对需要更正的代码进行修正。
异常处理语句
try
{
需要被检测的代码;
}
catch ()
{
处理异常的代码;
}
finally
{
一定会执行的代码;
}
有三个结合格式:
1. try
{
}
catch ()
{
}
2. try
{
}
finally
{
}
3. try
{
}
catch ()
{
}
finally
{
}
[b]异常处理注意事项 [/b]
1、finally中通常定义的关闭资源的代码,因为自要必须释放。
2、finally只有一种情况不会执行。[b]当执行到System.exit(0);时,finally语句不会执行[/b]。
[b]自定义异常 [/b]
[b]定义异常类继承Exception或者RuntimeException[/b]。目的:
1、为了让该自定义类具备可抛性
2、让该类聚类操作异常的共性方法。
当要自定义异常信息时,可以使用父类已经定义好的功能。异常信息传递给父类的构造函数。如下:
MyException(String message)
{
super(message);
}
[b]自定义异常思想 [/b]
[b]自定义异常信息思想是按照java面向对象思想[/b]进行的,将程序中出现的特有信息进行封装。
[b]异常的好处 [/b]
1、将问题进行封装
2、将正常流程代码和问题代码进行分析,方便与阅读。
[b]异常处理原则 [/b]
1、异常处理有两种方式:try catch或者thorws。
2、调用到抛出异常功能时,抛出几个异常就要处理一个异常。
3、多个catch块,父类的catch块一点要放到catch块的最后,否则编译失败。
4、catch中,需要针对性的进行异常处理,不要简单的打印异常信息。
5、当捕获到的异常本功能处理不了时可以继续在catch中抛出。例如:
try
{
throw new AException();
}
catch (AException e)
{
throw e;
}
如果异常处理不了,但并不属于该功能出现的异常,可以将异常进行转化后再抛出和该功能相关的异常。如:
try
{
throw new AException();
}
catch (AException e)
{
// 对AException处理。
}
比如,汇款的例子,一旦汇款失败,这时首先会将异常信息进行处理(将汇款失败的金额返回),然后给用户以提示(相当于转化后的结果)。
异常的注意事项
在子父类覆盖时:
1、子类抛出的异常必须是父类异常的子类或者子集
2、如果父类或者接口没有抛出异常,子类覆盖时出现异常,只能try而不能向上抛。
相关文章推荐
- Java培训笔记十二(中信的Java基础归纳)
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- java基础巩固系列(十二):java正则表达式入门以及Pattern、Matcher类详解
- 智渔课堂官方免费教程十二:Java基础之内部类
- I学霸官方免费教程十二:Java基础之内部类
- java基础巩固训练营【第一轮】(十二) 我们一起来找茬 补
- Java基础---异常处理机制
- Java Script基础(十二) 正则表达式
- 黑马程序员——JAVA基础之异常处理机制
- Java_jdbc 基础笔记之十二 数据库连接 (beanutils )
- Java程序员从笨鸟到菜鸟之(十二)java异常处理机制
- Java基础(十二)——IO流
- java基础整理十二(多线程2)
- Java Script基础(十二) 正则表达式
- 黑马程序员---JAVA基础---IO(十二)
- Java基础学习笔记(十二)I/O 缓冲流
- 黑马程序员_毕向东JAVA基础_设计模式&异常处理机制
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十二)
- 【JAVA基础】-异常处理机制
- Java基础知识 十二 IO流 (上)