博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
回顾JAVA---3.异常
阅读量:5324 次
发布时间:2019-06-14

本文共 1375 字,大约阅读时间需要 4 分钟。

---异常---

- 异常:就是不正常,程序运行时出现的不正常情况,其实就是程序出现了问题,

这个问题按照面向对象的思想进行描述,并封装成了对象,因为问题的产生有产生的原因,
有问题的名称,有问题的描述等多个属性信息存在,当出现多属性信息最方便的方式就是讲这些信息进行封装,
异常就是java按照面向对象的思想将问题进行对象封装,这样就方便于操作问题及处理问题
- 出现的问题有很多种,比如角标越界,空指针等都是,就对这些问题进行分类,而且这些问题都有共性内容
比如:每一个问题都有名称,同时还有问题描述的信息,问题出现的位置,所以可以不断的向上抽取,现成了异常体系
- 这个体系中所有的类都具备一个独有的特点就是可抛性
- 可抛性的体现:就是这个体系中的类和对象都可以被throws和throw两个关键字所操作
- 在开发时,如果定义功能时,发现该功能会出现一些问题,应该将该问题在定义功能时标示出来,这样调用者使用时预先给出处理方式
- 处理方式:1.捕捉 2.抛出

try{		需要被检测的代码;	}	catch(异常类 变量名){		异常处理的代码;	}	finally{		一定会执行的代码;	}
- 异常处理原则:功能抛出异常,功能调用如果进行try处理,需要与之对应的catch处理代码块,这样的处理有针对性,抛几个就处理几个
- 特殊情况:try对应多个catch时,如果有父类的catch语句块,一定要放在最下面
- throw用于抛出异常对象,后面跟的是异常对象,throw用在函数内
- throws用于抛出异常类,后面更的异常类名,可以跟多个,用逗号隔开,throws用在函数上
- 功能内部如果出现异常,如果内部可以处理,就用try,如果不能处理就必须声明出来,让调用者处理,使用throws抛出
- 自定义异常:项目中出现了java中没有定义过的问题时,这时就需要我们按照java异常建立思想,将项目中的特有问题进行封装,这个异常叫做自定义异常
- 自定义异常的步骤:定义一个子类继承Exception或RuntimeException,让该类具备可抛性,通过throw或throws进行操作
- 异常转换思想:当出现的异常是调用者处理不了的,就需要将此异常转换为一个调用者可以处理的异常抛出
- 当子类覆盖父类的方法时,如果父类的方法抛出异常,那么子类方法要么不抛出异常要么抛出父类异常或者给异常的子类,不能抛出其他异常
- 如果父类抛出多个异常,那么子类在覆盖时只能抛出父类的异常子集
- 如果父类或者接口中的方法没有抛出过异常,那么子类是不可以抛出异常的,如果子类的覆盖方法中出现了异常,只能try不能throws
- 如果这个异常子类无法处理,已经影响了子类方法的具体运算,这时可以在子类方法中通过throw抛出RuntimeException异常或者子类异常
- 常见异常
 --角标越界异常(IndexOutOfBoundsException)
 --空指针异常(NullPointerException)
 --类型转换异常(ClassCastException)
-异常要尽量避免,如果避免不了,需要预先给出处理

转载于:https://www.cnblogs.com/Amen-Z/p/8511992.html

你可能感兴趣的文章
C++ 与 .Net
查看>>
PHP去除重复的数组数据
查看>>
201621123031 《Java程序设计》第11周学习总结
查看>>
点击控件出现下沉或者倾斜技巧。(是你的控件不在死板,)
查看>>
转【算法之动态规划(三)】动态规划算法之:最长公共子序列 & 最长公共子串(LCS)&字符串相似度算法...
查看>>
关于 freetds pymssql 的安装部署
查看>>
利用U盘大白菜软件来重装win7系统
查看>>
ASP.NET播放Flash(.SWF)视频
查看>>
准备六一儿童节
查看>>
jQuery的prop和attr方法之间区别
查看>>
Python:格式化输出
查看>>
msp430项目编程
查看>>
一步一步学Silverlight 2系列(21):如何在Silverlight中调用JavaScript
查看>>
MyBatis 常用标签用法
查看>>
CentOS7 FTP安装与配置
查看>>
web页面数据验证提醒方式
查看>>
Latex入门
查看>>
python基础介绍,关于while,for,if介绍
查看>>
算法初步-排序
查看>>
矩阵翻转(上下,左右)
查看>>