黑马程序员———异常,包的总结
2014-12-01 20:14
106 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
异常:就是程序中出现的不正常情况。
异常由来:问题是现实生活中的一个事物,也可以通过java的类的形式
进行描述,并封装成对象。
异常的体系Throwable--
Throwable:
Error:
通过出现重大问题如:运行的类不存在或者内存溢出。
不编写针对代码对其处理。
Exception:
在运行时运行出现的异常情况,可以通过try catch finally解决。
Exception和Error的子类名都是以父类名作为后缀起名的。
无论Error还是Exception都有共性内容,比如:引发原因,不正常情况的信息等。
2 异常的处理:
try{
需要被检测的语句;
}catch(异常类 变量) {
处理异常的代码(处理方式)
}finally {
一定会执行的语句;
}
3 对捕获到的对象进行常见方法操作:
String getMessage();
String toString();
e.printStackTrace();
其实虚拟机默认的异常处理机制就在调用e.printStackTrace();
在函数上声明异常:
便于提高安全性,让调用者进行处理。不处理编译失败。
对多异常的处理:
1.声明异常时,建议声明更为具体的异常,这样处理的可以更具体。
2.对方声明几个异常,就对应有几个catch块。不要定义多余的catch块
如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
建议在进行catch处理时,catch中一定要定义具体处理方式。
不要简单定义一句:e.ptintStachTrace(),也不要就书写一条输出语句。
实际开发,当出现问题时,会把问题以日志的形式体现,称为异常日志
因为项目中会出现特有的问题。而这些问题并未被java所描述并封装成对象。
所以对于这些特有的问题可以按照java对问题封装的思想,将特有的问题进行自定义的异常封装。
自定义异常:
需求:在本程序中,对于除数为负数的情况,视为错误,无法进行运算。
所以需要对这个问题进行自定义的描述。
当在函数内部出现了throw抛出异常对象,那么必须要给对应的处理动作。
要么在内部try catch处理。
要么在函数上声明让调用者处理。
一般情况,在函数内出现异常,函数上也需要声明。
发现打印的结果只有异常的名称,却没有异常的信息。因为自定义的异常没有定义信息。
那如何定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常信息传递给父类通过super()语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
自定义异常:必须是自定义类继承Exception
继承Exception原因:
异常体系有一个特点:因为异常类和异常对象都被抛出。他们都具备可抛性。这个可抛性是Throwable这个体系中国独有特点。
只有这个体系中的类和对象才可以被throws和throw操作。
throw和throws的区别:
throws使用在函数上
throw使用在函数内
throws后面跟的是异常类,可以跟多个,用逗号隔开。
throw后面跟的是异常对象。
Exception中有一个特殊的子类异常RuntimeException 运行时异常。
如果在函数内抛出该异常,函数上可以不用声明,编译一样通过。
如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
之所以不用再函数声明,是因为不需要调用者处理。
当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。
自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException
对于异常分两种:
1.编译时被检测的异常。
2.编译时不被检测的异常(运行时异常,RuntimeException及其子类)
finally代码块:一定会执行的语句,
通常用于关闭资源(如数据库的关闭)
------------------------------------
包(package)
对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
类名的全称的是 包名.类名。
包也是一种封装形式。
包名的定义:所有的字母小写
javac -d . PackageDemo.java//当前目录
javac -d c:\myclass PackageDemo.java//指定目录
set classpath = c:\myclass //不用设置到pack目录下。
java pack.PackageDemo
总结:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种:public protected
public protected default private
同一个类中 T T T T
同一个包中 T T T
子类 T T
不同包中 T
导包:为了简化类名的书写,使用一个关键字import
import:导入的是包中的类。
通常在开发中,用到哪个类就导入哪个类,因为写通配符*,太占内存。
写包名可以方便管理,也可以避免类重名。
建议定义包名不要重复,可以使用url来完成定义,url是唯一的。
www.itcast.cn
package cn.itcast.demo
package cn.itcast.test
Jar包:
java的压缩包。
1.方便项目的携带。
2.方便于使用,只要在classpath设置jar路径即可。
3.数据库驱动,SSH框架等都是以jar包体现的。
打包成jar包:实例1:将两个类文件归档到一个名为classes.jar的归档文件中。
jar cvf classes.jar Foo.class Bar.class
实例2:使用现有的清单文件“mymanifest”归档到“classes.jar”中,
jar cvfm classes.jar mymanifest -C foo/.
jar -cf haha.jar packa pack
JDK中的工具:jar.exe
把jar包放到classpath路径下,就能使用包中的数据。
rt.jar是java的类库。
编译工具所属的类在tools.jar中。
把某个文件或者dos命令行中的界面存到硬盘中的一个文件中,可以使用:
jar -tf rt.jar > c:\rt.txt (把rt.jar中的数据存到rt.txt中)
Object中:
public class Object{
private static native void registerNatives();
static{
registerNatives();
}
//本地注册。 关键字native就是调用系统中的虚拟机。虚拟机找windows。
public native int hashCode();//用相应系统中的hashCode方法。
native走的就是本地方法区,底层的东西看不着。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
异常:就是程序中出现的不正常情况。
异常由来:问题是现实生活中的一个事物,也可以通过java的类的形式
进行描述,并封装成对象。
异常的体系Throwable--
Throwable:
Error:
通过出现重大问题如:运行的类不存在或者内存溢出。
不编写针对代码对其处理。
Exception:
在运行时运行出现的异常情况,可以通过try catch finally解决。
Exception和Error的子类名都是以父类名作为后缀起名的。
无论Error还是Exception都有共性内容,比如:引发原因,不正常情况的信息等。
2 异常的处理:
try{
需要被检测的语句;
}catch(异常类 变量) {
处理异常的代码(处理方式)
}finally {
一定会执行的语句;
}
3 对捕获到的对象进行常见方法操作:
String getMessage();
String toString();
e.printStackTrace();
其实虚拟机默认的异常处理机制就在调用e.printStackTrace();
在函数上声明异常:
便于提高安全性,让调用者进行处理。不处理编译失败。
对多异常的处理:
1.声明异常时,建议声明更为具体的异常,这样处理的可以更具体。
2.对方声明几个异常,就对应有几个catch块。不要定义多余的catch块
如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
建议在进行catch处理时,catch中一定要定义具体处理方式。
不要简单定义一句:e.ptintStachTrace(),也不要就书写一条输出语句。
实际开发,当出现问题时,会把问题以日志的形式体现,称为异常日志
因为项目中会出现特有的问题。而这些问题并未被java所描述并封装成对象。
所以对于这些特有的问题可以按照java对问题封装的思想,将特有的问题进行自定义的异常封装。
自定义异常:
需求:在本程序中,对于除数为负数的情况,视为错误,无法进行运算。
所以需要对这个问题进行自定义的描述。
当在函数内部出现了throw抛出异常对象,那么必须要给对应的处理动作。
要么在内部try catch处理。
要么在函数上声明让调用者处理。
一般情况,在函数内出现异常,函数上也需要声明。
发现打印的结果只有异常的名称,却没有异常的信息。因为自定义的异常没有定义信息。
那如何定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常信息传递给父类通过super()语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
自定义异常:必须是自定义类继承Exception
继承Exception原因:
异常体系有一个特点:因为异常类和异常对象都被抛出。他们都具备可抛性。这个可抛性是Throwable这个体系中国独有特点。
只有这个体系中的类和对象才可以被throws和throw操作。
throw和throws的区别:
throws使用在函数上
throw使用在函数内
throws后面跟的是异常类,可以跟多个,用逗号隔开。
throw后面跟的是异常对象。
Exception中有一个特殊的子类异常RuntimeException 运行时异常。
如果在函数内抛出该异常,函数上可以不用声明,编译一样通过。
如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
之所以不用再函数声明,是因为不需要调用者处理。
当该异常发生,希望程序停止,因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修正。
自定义异常时:如果该异常的发生,无法再继续进行运算,就让自定义异常继承RuntimeException
对于异常分两种:
1.编译时被检测的异常。
2.编译时不被检测的异常(运行时异常,RuntimeException及其子类)
finally代码块:一定会执行的语句,
通常用于关闭资源(如数据库的关闭)
------------------------------------
包(package)
对类文件进行分类管理。
给类提供多层命名空间。
写在程序文件的第一行。
类名的全称的是 包名.类名。
包也是一种封装形式。
包名的定义:所有的字母小写
javac -d . PackageDemo.java//当前目录
javac -d c:\myclass PackageDemo.java//指定目录
set classpath = c:\myclass //不用设置到pack目录下。
java pack.PackageDemo
总结:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种:public protected
public protected default private
同一个类中 T T T T
同一个包中 T T T
子类 T T
不同包中 T
导包:为了简化类名的书写,使用一个关键字import
import:导入的是包中的类。
通常在开发中,用到哪个类就导入哪个类,因为写通配符*,太占内存。
写包名可以方便管理,也可以避免类重名。
建议定义包名不要重复,可以使用url来完成定义,url是唯一的。
www.itcast.cn
package cn.itcast.demo
package cn.itcast.test
Jar包:
java的压缩包。
1.方便项目的携带。
2.方便于使用,只要在classpath设置jar路径即可。
3.数据库驱动,SSH框架等都是以jar包体现的。
打包成jar包:实例1:将两个类文件归档到一个名为classes.jar的归档文件中。
jar cvf classes.jar Foo.class Bar.class
实例2:使用现有的清单文件“mymanifest”归档到“classes.jar”中,
jar cvfm classes.jar mymanifest -C foo/.
jar -cf haha.jar packa pack
JDK中的工具:jar.exe
把jar包放到classpath路径下,就能使用包中的数据。
rt.jar是java的类库。
编译工具所属的类在tools.jar中。
把某个文件或者dos命令行中的界面存到硬盘中的一个文件中,可以使用:
jar -tf rt.jar > c:\rt.txt (把rt.jar中的数据存到rt.txt中)
Object中:
public class Object{
private static native void registerNatives();
static{
registerNatives();
}
//本地注册。 关键字native就是调用系统中的虚拟机。虚拟机找windows。
public native int hashCode();//用相应系统中的hashCode方法。
native走的就是本地方法区,底层的东西看不着。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
相关文章推荐
- 黑马程序员-内部类&异常总结-No.01
- 黑马程序员——(异常)总结
- 黑马程序员_异常总结
- 黑马程序员—java面向对象总结(4)—内部类、异常
- 黑马程序员--07.集合框架--并发访问异常理解:一个单线程程序的多线程运行思想【个人总结】
- 黑马程序员—异常的总结
- 黑马程序员------面向对象(No.8)(自定义异常、throw(throws)、RuntimeException、覆盖时异常、异常总结)
- 黑马程序员——关于异常的总结
- 黑马程序员-----------------java异常处理总结
- Java异常的总结-----黑马程序员
- 黑马程序员:java中的异常总结
- 黑马程序员 异常处理机制的总结
- 黑马程序员_throws、throw关键字和自定义异常类以及异常的总结
- 黑马程序员_Java第18天知识总结_System类_Runtime类_Date_Calendar_Math_Random_InputStream_OutputStream_IO异常的处理
- 黑马程序员-异常总结和笔记
- 黑马程序员_Java异常总结
- 黑马程序员 java中的异常处理个人总结
- 黑马程序员_异常总结
- 黑马程序员----【javaSE基础】个人总结--异常和包
- 黑马程序员--异常总结