黑马程序员——java基础---Java语言中的异常
2015-08-06 17:32
281 查看
1.什么是异常?
异常:及时程序在运行时出现的不正常情况。
异常由来:问题也是实现生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象,其实就是java对不正常情况进行的描述后体现。
对问题的划分有两种:一种是严重的问题,一种是非严重的问题。
严重的:java通过Error类进行描述。对于Error一般不编写针对的代码进行处理。
对于非严重的:java通过Exception类进行描述。赋予Exception可以使用针对夫的处理方式进行处理。
无论Error或者是Exception都具有一些共性内容:比如:不正常引发原因等。
问题划分结构:Throwable
|–Error
|–Exception
2.异常的处理
java提供特有的语句进行处理,格式有三种:
第一种格式:
try
{ 需要检测的代码 }
catch(Exception e)
{ 处理代码 }
第二种格式:
try
{ 需要检测的代码 }
catch(Exception e)
{ 处理代码 }
finally
{ 一定会执行的代码 }
第三种格式:
try
{ 需要检测的代码 }
finally
{ 一定会执行的代码 }
注意:catch是用于处理异常,如果没有
3.对捕获到的异常进行常见的操作方法:
String getMessage();获得异常信息
String toString();获取异常名称,异常信息
printStackTrace();获取异常名称,异常信息,异常信息位置
4.对多异常的处理
(1)声明异常时,建议声明为具体的异常。这样处理的可以更具体。
(2)对方声明几个异常,就要对应有几个catch块。不要定义多余的catch块。
(3)如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
注意:在进行catch处理时,catch块中一定要定义具体的处理方式,也不要简单定义一条输出语句。
5.抛出
程序员处理异常有两种方法。一种是使用try{}catch{}块,捕获异常;另一种是程序员不在当前方法内进行处理异常,而是把异常抛出到调用方法中。在说明方法是使用如下格式:
<访问权限修饰符><返回值类型><方法名>(参数列表) throws 异常列表
throw和throws的区别
throws使用在函数上,后面跟的是异常类,可以跟多个。
throw使用在函数内,后面跟的是函数对象。
6.自定义异常
必须是自定义类继承Exception。如例:
public class MyException extends Exception{ …… }
继承Exception的原因:异常体系有一个特点:因为异常类和异常对象都被抛出。他么都具备可抛性。这个可抛性是Throwable这个体系独有的特点。只有这个体系中的类和对象才可以被throws和throw操作。
注意:Exception中有一个特殊的子类异常RuntimeException运行异常。如果在函数内容抛出该异常函数上可以不用声明编译一样通过。如果在函数上声明了异常,调用者可以不用进行处理,编译一样通过。之所以不用在函数上升声明,是因为不需要进行处理。当异常发生,希望程序停止,对代码进行修正。编译时不被检测的异常(运行时异常,RuntimeException以及其子类)。
7.异常在子父类覆盖中的体现
(1)子类在覆盖父类时 ,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类异常或者该异常的子类。
(2)如果父类方法抛出多个异常,那么子类在覆盖父类方法时,只能抛出父类的子集异常。
(3)如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时也不可以抛出异常。
8.异常总结
异常体系:
Throwable
|–Error
|–Exception
|–RuntimeException
异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。也就是说可以被throws或者throw关键字修饰。
异常:及时程序在运行时出现的不正常情况。
异常由来:问题也是实现生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象,其实就是java对不正常情况进行的描述后体现。
对问题的划分有两种:一种是严重的问题,一种是非严重的问题。
严重的:java通过Error类进行描述。对于Error一般不编写针对的代码进行处理。
对于非严重的:java通过Exception类进行描述。赋予Exception可以使用针对夫的处理方式进行处理。
无论Error或者是Exception都具有一些共性内容:比如:不正常引发原因等。
问题划分结构:Throwable
|–Error
|–Exception
2.异常的处理
java提供特有的语句进行处理,格式有三种:
第一种格式:
try
{ 需要检测的代码 }
catch(Exception e)
{ 处理代码 }
第二种格式:
try
{ 需要检测的代码 }
catch(Exception e)
{ 处理代码 }
finally
{ 一定会执行的代码 }
第三种格式:
try
{ 需要检测的代码 }
finally
{ 一定会执行的代码 }
注意:catch是用于处理异常,如果没有
3.对捕获到的异常进行常见的操作方法:
String getMessage();获得异常信息
String toString();获取异常名称,异常信息
printStackTrace();获取异常名称,异常信息,异常信息位置
4.对多异常的处理
(1)声明异常时,建议声明为具体的异常。这样处理的可以更具体。
(2)对方声明几个异常,就要对应有几个catch块。不要定义多余的catch块。
(3)如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
注意:在进行catch处理时,catch块中一定要定义具体的处理方式,也不要简单定义一条输出语句。
5.抛出
程序员处理异常有两种方法。一种是使用try{}catch{}块,捕获异常;另一种是程序员不在当前方法内进行处理异常,而是把异常抛出到调用方法中。在说明方法是使用如下格式:
<访问权限修饰符><返回值类型><方法名>(参数列表) throws 异常列表
throw和throws的区别
throws使用在函数上,后面跟的是异常类,可以跟多个。
throw使用在函数内,后面跟的是函数对象。
6.自定义异常
必须是自定义类继承Exception。如例:
public class MyException extends Exception{ …… }
继承Exception的原因:异常体系有一个特点:因为异常类和异常对象都被抛出。他么都具备可抛性。这个可抛性是Throwable这个体系独有的特点。只有这个体系中的类和对象才可以被throws和throw操作。
注意:Exception中有一个特殊的子类异常RuntimeException运行异常。如果在函数内容抛出该异常函数上可以不用声明编译一样通过。如果在函数上声明了异常,调用者可以不用进行处理,编译一样通过。之所以不用在函数上升声明,是因为不需要进行处理。当异常发生,希望程序停止,对代码进行修正。编译时不被检测的异常(运行时异常,RuntimeException以及其子类)。
7.异常在子父类覆盖中的体现
(1)子类在覆盖父类时 ,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类异常或者该异常的子类。
(2)如果父类方法抛出多个异常,那么子类在覆盖父类方法时,只能抛出父类的子集异常。
(3)如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时也不可以抛出异常。
8.异常总结
异常体系:
Throwable
|–Error
|–Exception
|–RuntimeException
异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。也就是说可以被throws或者throw关键字修饰。
相关文章推荐
- IT职业生涯的几条建议
- 启示—地点IT高管20在职场心脏经(读书笔记6)
- 面试题1
- 码农《五》
- 《招聘一个靠谱的iOS》面试题参考答案
- 码农《四》
- 黑马程序员——字符流,字节流
- 黑马程序员————— java基础之函数与数组
- 黑马程序员 oc随记 写一个多态
- 程序员学炒股(6) 让我们来看一下7月份A股的表现
- 黑马程序员——数组概述+数组排序+数组查找-第5天
- 面试常用算法总结——排序算法(java版)
- 阿里内推面试题
- 面试常用算法总结——排序算法(java版)
- 【黑马程序员】Java学习笔记--异常
- 黑马程序员---OC基础---OC简介、OC与C的差异、类和对象与方法
- 推荐!国外程序员整理的机器学习资源大全
- 面试题
- 推荐!国外程序员整理的Java资源大全
- fork面试题