异常_自定义异常_finally_package(包)_打jar包

来源:互联网 发布:淘宝代卖软件 编辑:程序博客网 时间:2024/04/30 17:50
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
【异常】
异常:就是程序在【运行时】出现不正常情况。代码不往下执行了,jvm就把程序结束了【算术规则,除数不能为0】
异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象【异常】。
异常其实就是java对不正常情况进行描述后的对象体现。把问题封装成对象就是异常
对于问题的划分:两种:一种是严重的问题,一种非严重的问题。
对于严重的,java通过Error类进行描述。对于Error一般不编写针对性的代码对其进行处理。
对与非严重的,java通过Exception类进行描述。对于Exception可以使用针对性的处理方式进行处理。
【异常的处理】
java 对异常处理方式
try
{
需要被检测的代码;
}
catch(异常类 变量)
{
处理异常的代码;(处理方式)
}
finally
{
一定会执行的语句;
}
在函数上声明异常。int div(int a,int b)throws ArithmeticException
便于提高安全性,让调用出进行处理。不处理编译失败。
对多异常的处理。 
1,声明异常时,建议声明更为具体的异常。这样处理的可以更具体。
2,对方声明几个异常,就对应有几个catch块。不要定义多余的catch块。
如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。

建立在进行catch处理时,catch中一定要定义具体处理方式。
不要简单定义一句 e.printStackTrace(),也不要简单的就书写一条输出语句。
***真出现问题,我们是不在控制台打印的,把问题信息用一个硬盘文件记录下来(称之为异常日志文件)
【自定义异常】
因为项目中会出现特有的问题,而这些问题并未被java所描述并封装对象。
所以对于这些特有的问题可以按照java的对问题封装的思想。将特有的问题。进行自定义的异常封装
当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作。
要么在内部try catch处理。要么在函数上声明让调用者处理。
如何定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常信息传递给父类通过super语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
【throws和throw的区别】
throws使用在函数上。
throw使用在函数内。
throws后面跟的异常类。可以跟多个,用逗号隔开。
throw后跟的是异常对象。
对于异常分两种:
1,编译时被检测的异常。【不是RuntimeException异常,但抛出了异常确没声明】
2,编译时不被检测的异常(运行时异常。RuntimeException以及其子类)
异常格式:
第一个格式:
try{}catch (){}
第二个格式:try{}catch (){}finally{}
第三个格式:try{}finally{}
第三个格式:try{}catch (){}catch (){}catch (){}
//记住一点:catch是用于处理异常。如果没有catch就代表异常没有被处理过,如果该异常是检测时异常。那么必须声明。
异常在子父类覆盖中的体现;
【异常总结】
异常:
是什么?是对问题的描述。将问题进行对象的封装。
异常体系:
Throwable
|--Error
|--Exception
|--RuntimeException
异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。
也就是说可以被throw和throws关键字所操作。
只有异常体系具备这个特点。
throw和throws的用法:
throw定义在函数内,用于抛出异常对象。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
当函数内容有throw抛出异常对象,并未进行try处理。必须要在函数上声明,否则编译失败。
注意,RuntimeException除外。也就说,函数内如果抛出的RuntimeExcpetion异常,函数上可以不用声明。
如果函数声明了异常,调用者需要进行处理。处理方法可以throws  可以try。
异常有两种:
编译时被检测异常
该异常在编译时,如果没有处理(没有抛也没有try),编译失败。
该异常被标识,代表这可以被处理。
运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检查。
该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
异常的好处:
1,将问题进行封装。
2,将正常流程代码和问题处理代码相分离,方便于阅读。
异常的处理原则:
1,处理方式有两种:try 或者 throws。
2,调用到抛出异常的功能时,抛出几个,就处理几个。
一个try对应多个catch。
3,多个catch,父类的catch放到最下面。
4,catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace,输出语句。
也不要不写。
当捕获到的异常,本功能处理不了时,可以继续在catch中抛出。
【package】
package pack;
包名所有字母小写,有了包之后,类的全名叫:包名.类名
有包了编译就要加参数:javac -d . a.java
-d指定包所存放的地址(目录)
.代表当前目录,
java pack.a
包的出现可以让java源文件和java的类文件相分离
java要运行的时候classpath指向包的父目录即可:
【不同包中的类如何访问】
用那个包里的类,就把此类的包用import导进来:
包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰
不同包中的子类还可以直接访问父类中被protected(保护)权限修饰的成员
包与包之间可以使用的权限只有两种,public  protected。而且只能给子类使用
                         public   protected       default     private
同一个类中        ok            ok                 ok             ok
同一个包中        ok            ok                 ok
子类                    ok            ok             
不同包中            ok
同一个包中protected只限于子类覆盖,
【jar包:】
方便项目的携带
【类文件用文件夹存起来了,文件越来越多,把这文件夹或多个文件夹打成个压缩包
要使用一个工具完成:
javac -d c:\myclass DemoA.java
set classpath
1: 先把文件编译成类文件
2: jar 回车  了解下
3:  切换到c:\myclass下
3: jar -cfv haha.jar packa pack
      -c创建一个压缩文件  
f指定归档文件名:haha.jar
v显示详细信息
把c:\myclass下包文件夹(想把那几个包文件夹打到jar包里就把那几个包文件夹名写到后面)如:packa pack
你要是想打成压缩包可以直接右键哈哈
4:  jar -tf haha.jar   查看压缩包里的目录(jar -tvf haha.jar)
也可以右键打开方式用rar打开
5: 【使用jar包】把jr包放到classpath下就行了
set classpath=c:\myclass\haha.jar
java pack.JarDemo

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩做作业不专心怎么办 孩子上课精力不集中怎么办 四岁宝宝吃饭慢怎么办 5岁宝宝吃饭慢怎么办 小学一年级上课不专心怎么办 5岁儿童不专心怎么办 小孩子做作业不专心怎么办 孩子做作业不专心怎么办 小孩学了就忘怎么办 小孩学过就忘了怎么办 做事老是注意力不集中怎么办 做事无法专注注意力不集中怎么办 幼儿园孩子上课不认真听讲怎么办 孩子在课间打闹家长应该怎么办 孩子打闹家长额钱怎么办 我又打孩子了怎么办 打排卵针不排卵怎么办 总是控制不住打骂孩子怎么办 叛逆期的孩子打骂妈妈怎么办 孩子屁股打青了怎么办 父亲把孩子屁股打流血怎么办 孩子屁股长了湿疹怎么办 宝宝发脾气摔东西躺地上怎么办 生气拿棍子打了孩子怎么办 小宝宝被蚊虫咬了怎么办 小宝宝被蚊子咬了怎么办 衣架打小孩淤青怎么办 1岁宝宝有痰咳嗽怎么办 1岁宝宝咳嗽有痰怎么办 孩子爱动手打家长怎么办 不小心有了孩子该怎么办 2岁多宝宝干咳怎么办 2岁宝宝咳嗽无痰怎么办 打了孩子后悔了怎么办 12小孩脾气很犟怎么办 被学生气着了怎么办 1岁宝宝轻微咳嗽怎么办 4岁宝宝突然呕吐怎么办 4岁儿童突然呕吐怎么办 四岁儿童90身高怎么办 24个月宝宝缺钙怎么办