黑马程序员--Java异常处理笔记
2012-03-14 23:07
204 查看
----------------------
android培训、java培训、期待与您交流! ----------------------
|--Error 对于严重的问题,Java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。
|--Exception 对于非严重的问题,Java通过Execption类进行描述。对于Execption可以使用针对性的处理方式进行处理。
throws定义在函数上,用于在抛出异常类,可以抛出多个,用逗号隔开。
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。但是RuntimeException除外。也就是说,函数内如果抛出了RuntimeException异常,在函数上可以不用声明。
如果函数声明了异常,调用者需要进行处理。处理的方法可以throws也可以try。
该异常在编译时,如果没有处理(没有抛也没有try),编译失败。该异常被标识,代表可以被处理。
2.运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检测。该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
finally
{
一定会执行的语句;
}
2.try
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
3.try
{
需要被检测的代码;
}
finally
{
一定会执行的语句;
}
2.finally只有一种情况是不会执行的。当执行到System.exit(0);//虚拟机关闭
1.为了让该自定义类具备可抛性。
2.让该类具备操作异常的共性方法
当要定义自定义异常的信息时,可以使用父类已经定义号的功能。
2.将正常流程代码和问题处理代码相分离,方便阅读。
2.调用到抛出异常的功能时,抛出几个,就处理几个。一个try对应多个catch。
3.有多个catch时,父类的catch放到最下面。
4.catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace,输出语句,也不要不写。当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
1.子类抛出的异常必须是父类的异常的子类或者子集。
2.如果父类或者接口没有异常的抛出时,子类覆盖出现异常,只能try不能抛出。
----------------------
android培训、java培训、期待与您交流! ----------------------
android培训、java培训、期待与您交流! ----------------------
异常
异常是什么?
是对问题的描述,将问题进行对象的封装。异常的体系:
Throwable|--Error 对于严重的问题,Java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。
|--Exception 对于非严重的问题,Java通过Execption类进行描述。对于Execption可以使用针对性的处理方式进行处理。
异常体系的特点:
异常体系中的所有类以及建立的对象都具备可抛性。也就是说可以被throw和throws关键字所操作。只有异常体系具备这个特点。throws和throw的用法
throw定义在函数内,用于抛出异常对象。throws定义在函数上,用于在抛出异常类,可以抛出多个,用逗号隔开。
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。但是RuntimeException除外。也就是说,函数内如果抛出了RuntimeException异常,在函数上可以不用声明。
如果函数声明了异常,调用者需要进行处理。处理的方法可以throws也可以try。
异常有两种:
1.编译时被检测异常该异常在编译时,如果没有处理(没有抛也没有try),编译失败。该异常被标识,代表可以被处理。
2.运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检测。该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
异常处理语句
try { 需要被检测的代码; } catch(异常类 变量) { 处理异常的代码;(处理方式) } finally { 一定会执行的语句; }
有三种结合方式:
1.try{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
finally
{
一定会执行的语句;
}
2.try
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
3.try
{
需要被检测的代码;
}
finally
{
一定会执行的语句;
}
注意:
1.finally中定义的通常是关闭资源代码,因为系统资源必须释放。2.finally只有一种情况是不会执行的。当执行到System.exit(0);//虚拟机关闭
自定义异常:
自定义异常类继承Exception或者RuntimeException1.为了让该自定义类具备可抛性。
2.让该类具备操作异常的共性方法
当要定义自定义异常的信息时,可以使用父类已经定义号的功能。
class MyExceptipn extends Exception { MyException(String message) { super(message); } }
自定义异常:
按照Java的面向对象思想,将程序中出现的特有问题进行封装。异常的好处:
1.将问题进行封装。2.将正常流程代码和问题处理代码相分离,方便阅读。
异常处理的原则:
1.处理方式有两种:try或者throws2.调用到抛出异常的功能时,抛出几个,就处理几个。一个try对应多个catch。
3.有多个catch时,父类的catch放到最下面。
4.catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace,输出语句,也不要不写。当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
try { 代码中throw new AException(); } catch (AException e) { //对AException处理 throw new BException(); }
异常的注意事项:
在子父类覆盖时:1.子类抛出的异常必须是父类的异常的子类或者子集。
2.如果父类或者接口没有异常的抛出时,子类覆盖出现异常,只能try不能抛出。
----------------------
android培训、java培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员_JAVA中常见的异常以及处理方式(课堂笔记)
- 黑马程序员--Java基础学习笔记【异常处理】
- java 异常处理 黑马程序员学习笔记(6)
- 黑马程序员——Java异常处理学习笔记
- 6.4-全栈Java笔记:异常处理办法(下)
- 【安卓学习笔记】JAVA基础-异常的处理
- 自学Java系列 笔记2 异常处理1
- 黑马程序员_java异常处理
- 黑马程序员——Java练习笔记——异常
- 黑马程序员——Java基础:异常处理机制
- 黑马程序员--Java学习日记之IO(异常处理与finally)
- 黑马程序员 java学习笔记——异常
- Java高级语法笔记-多个异常处理
- 黑马程序员_Java第18天知识总结_System类_Runtime类_Date_Calendar_Math_Random_InputStream_OutputStream_IO异常的处理
- java学习笔记7 - Spring mvc 统一异常处理和静态文件的配置
- 黑马程序员——Java要点笔记——异常
- 黑马程序员java学习笔记——内部类、异常、包
- 黑马程序员——Java 异常的捕获及处理
- 黑马程序员---- Java学习笔记:1.异常 2.集合
- JAVA学习笔记之异常处理