黑马程序员——异常处理、Object类
2014-10-30 16:41
267 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
异常处理
异常的体系
Throwable
Error
特点:是由JVM抛出的严重性的问题。这种问题发生一般不针对性处理,只能修改程序。
通常出现重大问题如:运行的类不存在或者内存溢出等。
不编写针对代码对其处理。
Exception
在运行时运行出现的一些情况,可通过try catch finally异常处理语句代码块处理。
该体系的特点:都是用父类名作为后缀,阅读性很强。
Exception和Error的子类名都是以父类名作为后缀。
什么是异常:就是在程序运行时发生的不正常情况。
在JAVA中用类的形式对不正常情况进行了描述和封装的异常对象。
描述不正常情况的类,称之为异常类。
以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,以提高阅读性。
问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系。
自定义异常
当JAVA中没有定义过的异常,我们就按照JAVA异常的创建思想——面向对象,对异常进行描述,并封装成对象。
注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具备可抛性,才可以被两个关键字所操作:throws
,throw
异常的分类:
编译时被检测异常:只要是Exception和其子类都是,除了RuntimeException体系。这个要在方法上显式声明抛弃的异常,或者捕捉调用之时可能发生该异常的地方。
这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式。这样的问题都可以针对性处理。
编译时不检测异常(运行时异常):就是Exception中的RuntimeException及其子类。不用显式声明或捕捉异常。
这种问题的发生无法让功能继续,运算无法进行,更多是因为调用者的原因导致的,或者引发了内部状态的改变导致的。那么这种问题一般不处理,直接编译通过,在运行时,让调用时的程序强制停止。让调用者对代码进行修正。
throws和throw的区别
1,throws使用在函数上。、
throw使用在函数内。
2,throws抛出的是异常类,可以抛出多个,用逗号隔开。
throw抛出的是异常对象。
异常处理的捕捉形式:
这是可以对异常进行针对性处理的方式。
具体格式:try{
//需要被检测导演的代码
}catch(异常类 变量){//该变量用于接收发生的异常对象
}finally{
//一定会被执行的代码。
}
异常的注意事项:
1,子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类在覆盖方法时只能抛出父类的异常或者该异常的子类。
2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类,只能抛出父类的异常或者子类或者子集。
注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛。那就只能try
多catch的时候,父类的catch放在最下面,因为所有的异常都是Exception异常的子类,它可以处理任何属于其子类的异常,下面所属子类的异常不再进行。
异常处理的原则
函数内部如果抛出需要检测的异常,那么函数上必须要声明,否则必须在函数内用trycatch捕捉,否则编译失败。
如果调用到了声明异常的函数,要么try catch要么throws。否则编译失败。
什么时候catch,什么时候throws呢?
功能内部可以解决,用catch。解决不了,用throws告诉调用者,由调用者解决。
一个功能如果抛出了多个异常,那么调用时,必须有对应多个catch进行针对性的处理。内部有几个需要检测的异常,就抛几个异常,抛出几个,就catch几个。
finally关键字
不管函数是否触发异常,都一定会执行。
要想不执行,就要在catch语句块的最后一行加上System.exit(0);退出JVM。
作用:用于关闭(释放)资源。
try catchfinally组合情况
1,try catch finally
2,try catch当没有必要释放资源时,可以不用定义finally。
3,try finally异常无法直接catch处理,但是资源需要被关闭。
如图:
Object——所有对象的基类
1、==和equals的用法:
==怎么用?
可以用于比较基本数据类型,比较的就是基本数据类型的值是否相等。
可以用于比较引用数据类型,比较的是对象的地址值是否相等。
equals怎么用?
equals只能用于比较引用数据类型的。
Object提供的equals是用于比较对象地址值是否相同。
自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。
2、toString()方法
当直接把对象放在输出语句里输出时,相当于通过对象调用了toString()方法得到字符串描述,再输出结果。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
异常处理
异常的体系
Throwable
Error
特点:是由JVM抛出的严重性的问题。这种问题发生一般不针对性处理,只能修改程序。
通常出现重大问题如:运行的类不存在或者内存溢出等。
不编写针对代码对其处理。
Exception
在运行时运行出现的一些情况,可通过try catch finally异常处理语句代码块处理。
该体系的特点:都是用父类名作为后缀,阅读性很强。
Exception和Error的子类名都是以父类名作为后缀。
什么是异常:就是在程序运行时发生的不正常情况。
在JAVA中用类的形式对不正常情况进行了描述和封装的异常对象。
描述不正常情况的类,称之为异常类。
以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,以提高阅读性。
问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系。
自定义异常
当JAVA中没有定义过的异常,我们就按照JAVA异常的创建思想——面向对象,对异常进行描述,并封装成对象。
注意:如果让一个类称为异常类,必须要继承异常体系,因为只有称为异常体系的子类才有资格具备可抛性,才可以被两个关键字所操作:throws
,throw
异常的分类:
编译时被检测异常:只要是Exception和其子类都是,除了RuntimeException体系。这个要在方法上显式声明抛弃的异常,或者捕捉调用之时可能发生该异常的地方。
这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式。这样的问题都可以针对性处理。
编译时不检测异常(运行时异常):就是Exception中的RuntimeException及其子类。不用显式声明或捕捉异常。
这种问题的发生无法让功能继续,运算无法进行,更多是因为调用者的原因导致的,或者引发了内部状态的改变导致的。那么这种问题一般不处理,直接编译通过,在运行时,让调用时的程序强制停止。让调用者对代码进行修正。
throws和throw的区别
1,throws使用在函数上。、
throw使用在函数内。
2,throws抛出的是异常类,可以抛出多个,用逗号隔开。
throw抛出的是异常对象。
异常处理的捕捉形式:
这是可以对异常进行针对性处理的方式。
具体格式:try{
//需要被检测导演的代码
}catch(异常类 变量){//该变量用于接收发生的异常对象
}finally{
//一定会被执行的代码。
}
异常的注意事项:
1,子类在覆盖父类方法时,父类的方法如果抛出了异常,那么子类在覆盖方法时只能抛出父类的异常或者该异常的子类。
2,如果父类抛出多个异常,那么子类只能抛出父类异常的子集。
简单说:子类覆盖父类,只能抛出父类的异常或者子类或者子集。
注意:如果父类的方法没有抛出异常,那么子类覆盖时绝对不能抛。那就只能try
多catch的时候,父类的catch放在最下面,因为所有的异常都是Exception异常的子类,它可以处理任何属于其子类的异常,下面所属子类的异常不再进行。
异常处理的原则
函数内部如果抛出需要检测的异常,那么函数上必须要声明,否则必须在函数内用trycatch捕捉,否则编译失败。
如果调用到了声明异常的函数,要么try catch要么throws。否则编译失败。
什么时候catch,什么时候throws呢?
功能内部可以解决,用catch。解决不了,用throws告诉调用者,由调用者解决。
一个功能如果抛出了多个异常,那么调用时,必须有对应多个catch进行针对性的处理。内部有几个需要检测的异常,就抛几个异常,抛出几个,就catch几个。
finally关键字
不管函数是否触发异常,都一定会执行。
要想不执行,就要在catch语句块的最后一行加上System.exit(0);退出JVM。
作用:用于关闭(释放)资源。
try catchfinally组合情况
1,try catch finally
2,try catch当没有必要释放资源时,可以不用定义finally。
3,try finally异常无法直接catch处理,但是资源需要被关闭。
如图:
Object——所有对象的基类
1、==和equals的用法:
==怎么用?
可以用于比较基本数据类型,比较的就是基本数据类型的值是否相等。
可以用于比较引用数据类型,比较的是对象的地址值是否相等。
equals怎么用?
equals只能用于比较引用数据类型的。
Object提供的equals是用于比较对象地址值是否相同。
自定义类中,如果重写了equals方法,那么就是按照你自己的需求来比较的。
2、toString()方法
当直接把对象放在输出语句里输出时,相当于通过对象调用了toString()方法得到字符串描述,再输出结果。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
相关文章推荐
- 黑马程序员——异常处理
- 黑马程序员_学习日记37_601基础加强(enums_truct_类型转换_值类型与引用类型_异常处理_函数返回值)
- 黑马程序员_字符流_字节流_IO异常处理_文件的续写_拷贝文本_缓冲流
- 黑马程序员_05 java异常处理总结
- 黑马程序员——多异常处理
- 黑马程序员-java异常处理
- 黑马程序员:IO异常处理方式
- 黑马程序员 Java基础 --->异常处理与包
- 黑马程序员_Java异常处理机制
- 黑马程序员------面向对象(No.7)(内部类、异常概述、异常try-catch、异常声明throws、多异常处理)
- 黑马程序员——Java异常处理学习笔记
- 黑马程序员 _Java中的异常处理及自定义异常
- 黑马程序员:JAVA异常处理机制
- 黑马程序员_day10 面向对象(异常的处理,导包,jar包)。
- 黑马程序员-----------------java异常处理总结
- 黑马程序员---异常处理
- 黑马程序员_java异常处理
- 黑马程序员_java学习之异常处理
- 黑马程序员---java异常处理机制
- 黑马程序员--异常与异常的处理