黑马程序员 第22天 异常

来源:互联网 发布:java项目打包成war 编辑:程序博客网 时间:2024/05/17 20:53

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、&lt;a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

异常的处理



java提供了特有的语句进行处理。
try
{
需要被检测的代码
}
catch (异常类 变量)
{
处理异常的代码(处理方式)
}
finally
{
一定会执行的语句
}


对捕获到的异常对象进行常见方法操作


System.out.println(e.getMessage());只有异常信息
System.out.println(e.toString());异常名称 :异常信息
e.printStackTrace(); 异常名称 : 异常信息 : 异常位置
其实就是jvm默认的异常处理机制


throws Exception 在 功能上通过throws的关键字声明了该功能有可能会出现问题


对多异常的处理


在函数上声明异常
便于提高安全性,让调用出进行处理,不处理编译失败


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


 建立在进行catch处理时,catch一定要定义具体处理方式
 不要简单定义一句e.printStrackrace();
 也不要简单的就写一条输出语句


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


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


一般情况下,函数内出现异常,函数上需要声明。


发现打印的结果中只有异常的名称,却没有异常的信息。
因为自定义的异常并未定义信息


如何定义异常信息
因为父类中已经把异常信息的操作都完成了
所以子类只要在构造时,将异常信息传递给父类通过super语句
那么就可以直接通过getMessage方法获取自定义的异常信息。


自定义异常 
必须是自定义类继承Exception


继承Exception原因:
异常体系有一个特点;因为异常类和异常对象需要被抛出
它们都具备可抛性。这个可抛性是Throwable这个体系中独有特点
只有这个体系中的类和对象才可以被throws和throw操作


throws和throw的区别
throws使用在函数上
throw使用在函数内
throws后面跟的异常类,可以跟多个。用逗号隔开
throw后面跟的是异常对象


Exception中有一个特殊的子类异常RuntimeException运行时异常
如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过


如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过


注意 之所以不用再函数上声明,是因为不需要让调用者处理
当异常发生时,希望程序停滞,因为咋运行时,出现了无法继续运算的情况
希望程序停止后,对代码进行修正


自定义异常时,如果该异常的发生,无法在继续进行预算,就让自定义异常继承RuntimeException


对于异常分两种:
1.编译时被检测的异常
2.编译时不被检测的异常,(运行时异常,RuntimeException以及其子类)


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Unity开发</a>、&lt;a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

0 0
原创粉丝点击