基础2012.7.21.00.00

来源:互联网 发布:浙江网络医院挂号 编辑:程序博客网 时间:2024/04/25 19:31
1,异常:
就是程序在运行时出现不正常情况。
异常由来:
问题也是现实生活中一个具体的事物,
也可以通过java的类的形式进行描述,并封装成对象。
其实就是java对不正常情况进行描述后的对象体现。
问题划分:
严重的问题:java通过Error类进行描述。
对于Error一般不编写针对性的代码对其进行处理。
非严重的问题:java通过Exception类进行描述。
对于Exception可以使用针对性的处理方式进行处理。


对捕获到的异常对象进行常见方法操作:
String getMessage():获取异常信息。


对多异常的处理:
声明异常时,建议声明更为具体的异常,这样处理可以更具体。
对方声明几个异常,就对应有几个catch块,
不要定义多余的catch块。
如果多个catch块中的异常出现继承关系,
父类异常catch块放在最下面。


因为项目中会出项特有的问题,
而这些问题并未被java所描述并封装对象,
所以对于这些特有的问题可以按照java的对问题封装的思想,
将这些特有的问题,进行自定义的异常封装。


自定义异常:
需求:在本程序中,对于除数是-1,
也视为是错误的是无法进行运算的,
那么就需要对这个问题进行自定义的描述。


当在函数内部出现了throw抛出异常对象,
那么就必须要给对应的处理动作,
要么在内部try catch处理,要么在函数上声明让调用者处理。
一般情况下,函数内出现异常,函数上需要声明。


发现打印的结果中只有异常的名称,却没有异常的信息,
因为自定义的异常并未定义信息。
如何定义异常信息呢:
因为父类中已经把异常信息的操作都在完成了,
所以子类只要在构造时,将异常信息传递给父类通过super语句,
那么就可以直接通过getMessage方法获取自定义的异常信息。
自定义异常必须是自定义类继承Exception。
继承Exception的原因:
异常体系有一个特点:以为异常类和异常对象都被抛出,
他们都具备可抛性,这个可抛性是Throwable这个体系中独有特点,
只有这个体系中的类和对象才可以被throws和throw操作。
throws和throw的区别:
throws使用在函数上,throw使用在函数内,
throws后面跟的异常类,可以跟多个,用逗号隔开,
throw后跟的是异常对象。


Exception中有一个特殊的子类异常RuntimeException运行时异常,
如果在函数内抛出该异常,函数上可以不用声明,编译一样通过,
如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。
之所以不用在函数声明,是因为不需要让调用者处理,
当该异常发生,希望程序停止,因为在运行时,
出现了无法继续运算的情况,希望停止程序后,对代码进行修正。
自定义异常时:如果该异常的发生,无法再继续进行运算,
就让自定义异常继承RuntimeException。


对于异常分两种:
编译时被检测的异常,
编译时不被检测的异常(运行时异常,RuntimeException和其子类)。









原创粉丝点击