初识java异常处理
来源:互联网 发布:数据恢复apk 编辑:程序博客网 时间:2024/05/16 07:41
对于目前java的学习阶段,异常处理虽说实际意义还没体现,花个时间看看总结下总比不知道好,在实际开发中是不得不考虑的问题。
异常处理的概念
为了处理一些代码无法掌握的状况,好多语言都设计了一个处理机制,我们叫它异常处理机制。例如:文件不存在,数据库未连接,网络无法连接等。JAVA为无法掌握的各种情况都设计了对应的类(对象),如果发生该情况,则系统(JVM )创建该对象,将该对象扔给程序员代码。简单的说,异常是系统创建的对象;异常对象是java设计出来抛给程序员的一个对象。
异常处理的分类
异常的分类按功能大概分:IO Exception ,SQL Ecception,NET Exception,RunTime Exception,Event Exception......
所有的异常都属于Exception的子集。
处理异常
java提供了两种处理机制,机制一:try{} catch(){} ; 机制二: throws xxx Exception;我们管机制一叫手动处理模式(负责模式),机制二叫不负责处理模式。
不负责模式
出现异常的代码所在的代码后,throws XXXException.它的含义是,我不想处理,谁调用谁处理。还有种情况,我们调用别人的方法, 别人的方法 后有throws XXXException语句 则,我们必须处理,不处理,编译同不过。这种情况,其实最大的好处,就是提醒 别人我有异常,对方应该注意到。
负责模式
try{.........有可能异常的代码.........}catch(XXXException ex){处理代码}。。。正常代码。。。。。。
上面的结构就是,如果,发生异常,系统就抛出异常对象,将异常对象传递给ex,进入catch(){}处理模块,catch()模块处理完成后,继续执行try{}后面的语句。
你比如说下面这个例子
try{...代码1...代码2*****...代码3有可能异常的代码...代码4......}catch(XXXException ex){处理代码}。。。正常代码18。。。。。。
代码2发生异常,执行完catch()后,系统将执行正常代码18,而不是代码3.
看起来总结前辈们的经验说:实际开发中,尽可能的多try{},或者try{}中代码尽可能的少,应该对各种异常,进行各种分门别类的处理。还有一个残酷的真相:真实的开发中,异常处理的代码要远远的多余正常的代码,大概齐:3:1;前辈们的经验是:在开发中,先别管异常,先一门心思 搞功能。、
对于try{}...catch()....finnally() 情况,finally{}的意思是,不管前面是否发生异常,都要执行finally{}语句,在实际中,如果catch()中有return ,则catch()后的代码,就没有机会执行,但是,如果后面有finally(),则,必须执行完finall{}才return。如果catch()中有System.exit(0),则finally{}也不执行。一般来书,finally中放置的代码,都是资源释放类代码。
自定义异常
在开发中,我们可以自己创建一个异常类,然后自己创建异常对象,自己抛出,
class MyException extends Exception{public String toString(){return "我是异常";}}class AA{public static void main(String [] args) {int i=3;if(i==3){ MyException mye = new MyException(); throw mye;}}}异常是可以可以携带数据的对象,我们提供了一种非return方式,向别人传递数据的机会。
- 初识java异常处理
- 初识JAVA异常处理机制
- 1、java初识 - 异常处理
- 初识异常处理
- Java 异常的初识
- 初识java事件处理
- 【初识Oracle】⑨异常处理EXCEPTION
- 【java】java异常处理
- java异常和异常处理
- Java 异常及异常处理
- java异常与异常处理
- Java异常处理-----自定义异常
- Java异常与异常处理
- java异常及异常处理
- Java 异常与异常处理
- Java异常与异常处理
- Java异常及异常处理
- Java异常处理--自定义异常
- HDU-ACM2021
- T-01. 终端仿真工具 SecureCRT 7.3.5 下载与安装
- C经典 一维数组指针解析
- 码农小汪-Spring-MVC 控制器4
- I00009 用1生成回文数
- 初识java异常处理
- mqtt
- Rails,ACM/ICPC CERC 1997,UVa514
- 数塔(dp水题)
- Window自带快速搜索
- 【附源码】搭建MVC:Spring+FreeMarker+MyBatis
- 武sir第二讲(2)基本数据类型
- HDU-ACM2022
- 建造者模式