黑马程序员——Java基础--- 异常
来源:互联网 发布:影视剪辑软件 edius7 编辑:程序博客网 时间:2024/05/26 05:52
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
首先感谢黑马、感谢素不相识的 毕老师
第三讲 异常
面向对象,以及封装等特点,同样在java的异常机制里面,异常很好地处理和解决了程序可能出现的问题。
一、异常概述
1、异常定义:错误或者不正常的显现象的产生都回在程序在行时发生这就是异常。
2、异常产生:将程序问题也当成一个类对象,用这种方式来处里程序运行中出现的错误。
3、可能存在的异常类型
3.1、非法的或自定义有问题的参数的错误地输入导致的异常
3.2、不仅仅是软件还包括硬件也会出现问题,也是异常类
3.3、在软件运行时设计的要求超出了计算机物理承受,如存储容量不足等 3.4、编写的程序不合法,如参数类型输入不正确等等
二、体系
最主要的是两个方面:
a是严重的problem;
b非严重的problem;
a类问题也就是很难解决的问题,Error因此这类错误不编写解决问题的方法,更多的是直接停止程序,将问题抛出来。
b类问题的处理,Exception是解决这类问题类。实现了不同的问题的处理和决绝。
Error、Exception是有相同之处的。
从而也就产生了异常体系:
Throwable
//Error (一般是非常大的问题很难处理的问题:如输入非法参数错误等)
//Exception (这类一般是运行时出现的problem)
//R runtimeException(只抛不声明)
Exception以及Error的名称都是有规定的:即子后缀为父类名称。还有就是异常皆可抛。
三、两种异常:
1、异常编译时出现的
该异常在编译时,如果没有处理(没有抛也没有try),编译失败。该异常被标识,代表着可以被处理。
2、异常运行时出现的(编译可通过)
编译器不需要检测和处理。这就是不解决的异常,程序终止掉,例如RuntimeException体系类。
四、异常的处理
1、 这里特殊的语句。
try
{
(代码)
}
catch(异常类 变量)
{
(处理代码)
}
finally
{
必运行代码;
}
三种组合方式:
1、try
{
}
catch ()
{
}
2、try
{
}
finally
{
}
3、try
{
}
catch ()
{
}
finally
{
}
特别注意:
a)资源关闭代码通常定义在finally中,因此资源也完成了释放任务。
b)当存在必须要执行的代码时,try{}finally{}是最好的的方式,即finally代码一定执行。
c)需要记住的当到System.exit(0);fianlly就会终止。
2、throws与throw区别
函数上的是throws,使用逗号想分离的抛出异常类。
函数内throw异常抛出,当出现为处理的异常。这时必须要声明出来(函数上),避免编译出错。
其中 RuntimeException是一个例外。函数上不必声明,函数内也可以抛出RuntimeExcpetion异常,。
3、抛出信息的解决
异常对象在函数内抛出时,这类问题出现时一定要有对应处理方法。一种是try catch,另外就是抛。
一般情况下,函数内出现异常,函数上需要声明。在功能上通过throws的关键字声明了该功能有可能会出现异常类型。
特殊之处:
异常一般方法:
String getMessage();//异常的信息。
toString();//异常类名以及异常信息。
printStackTrace();//异常类名加异常信息加异常位置。.
五、自定义异常
当由于项目的特殊的要求,或者根究客户的要求会出现一些特定的异常。因此可以将此类特殊异常封装起来。继承Exception以及RuntimeException。
a,使其具备可抛性。
b,具备异常同性。
例:
1. class fushuException extends Exception
2. {
3. private String message;
4. ZiDingYiException(String message)
5. {
6. super(message);
7. }
8. }
class ZiDingYiException extends Exception{ private String msg; ZiDingYiException(String msg) { super(msg);//将会返回输入的信息 }}
自定义异常当需要继承RuntimeException异常时,说明该异常出现时,程序不再运行。
try{ throw new AException();}catch (AException e){ // 对AException处理。 throw new BException();}
六、异常的注意事项
1、问题在内部被解决就不需要声明。
2、catch是用于处理异常。如果没有catch就代表异常没有被处理,如果该异常是检测时异常。那么必须声明。
c、继承关系中覆盖:
1,子类的异常应该是父类异常类型的子类。
2,当子类覆盖异常放生时,不可抛只可以try的情况:父类无异常抛出异常,
- 黑马程序员——Java基础---异常
- 黑马程序员——Java基础--- 异常
- 黑马程序员——Java基础->异常
- 黑马程序员——Java基础-异常
- 黑马程序员——Java基础---异常
- 黑马程序员——Java基础---异常
- 黑马程序员——Java基础--异常
- 黑马程序员——Java基础---异常
- 黑马程序员——Java基础-异常
- 黑马程序员——Java基础--------异常
- 黑马程序员——java基础---异常
- 黑马程序员 Java基础——异常
- 黑马程序员——Java 基础:异常
- 黑马程序员——JAVA基础----异常
- 黑马程序员—JAVA基础之异常
- 黑马程序员——java基础---Java语言中的异常
- 黑马程序员——java基础——异常
- 黑马程序员——JAVA基础——多态-异常
- nefu 628大组合数取模
- IM OpenSource软件评测报告
- 验证码过期(小功能)
- JavaScript盲点总结
- Java代码生成利器之rapid-generate应用四
- 黑马程序员——Java基础--- 异常
- 欢迎使用CSDN-markdown编辑器
- 【DIRECTX状态详解】
- cancelling 'com.example.myfirstapp.mainactivity activity launch'
- 悲催
- [LeetCode] 012. Integer to Roman (Medium) (C++/Java/Python)
- Itween Stop
- dddd
- 百度地图初体验一