如鹏网JAVA培训笔记24晓伟整理.docx

上传人:b****7 文档编号:9391395 上传时间:2023-02-04 格式:DOCX 页数:13 大小:763.97KB
下载 相关 举报
如鹏网JAVA培训笔记24晓伟整理.docx_第1页
第1页 / 共13页
如鹏网JAVA培训笔记24晓伟整理.docx_第2页
第2页 / 共13页
如鹏网JAVA培训笔记24晓伟整理.docx_第3页
第3页 / 共13页
如鹏网JAVA培训笔记24晓伟整理.docx_第4页
第4页 / 共13页
如鹏网JAVA培训笔记24晓伟整理.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

如鹏网JAVA培训笔记24晓伟整理.docx

《如鹏网JAVA培训笔记24晓伟整理.docx》由会员分享,可在线阅读,更多相关《如鹏网JAVA培训笔记24晓伟整理.docx(13页珍藏版)》请在冰豆网上搜索。

如鹏网JAVA培训笔记24晓伟整理.docx

如鹏网JAVA培训笔记24晓伟整理

写在前边的话:

2015年1月29日如鹏线上训练营第三十六天

世界上美丽的东西千千万万,却没有一样比年轻更为美丽;世界上珍贵的东西数不清,却没有一样比青春更为宝贵。

我们是多麽值的骄傲多麽让人羡慕啊!

而我们若只是挥霍光阴,只是享受,不去奋斗拼搏,那我们真的算拥有青春吗?

答案是否定的,我们只有发愤图强,努力耕耘才能做到无愧于青春,无愧于人生,才能拥有一个充实而完美的青春。

奋斗抒写无悔青春,在漫漫人生道路上,青春虽然只是一小段,但当你白发苍苍回首时,你会发现曾经拥有的青春依然会在记忆中闪烁着动人的光彩。

青春无悔该是我们每个人的追求,我们只有把握好青春的每一天,在激流中踊跃不断拼搏我们才可以骄傲地说:

“我的青春是无悔的!

青春的世界里,不需要固结你的思想,只有追寻美好的梦想,人生方荆棘丛生,我们都要持之以恒。

让我们像江河一样,谱写青春的音符,留下奋斗的足迹。

用我们的奋斗和梦想扬起青春的船帆,当我们努力拼搏地摇桨时,成功的闸门你也会慢慢地再为我们打开你,我们将享受一份青春的美好,收获一份成功的喜悦!

 

异常的概念:

●异常是程序在运行期发生的不正常的事件,它会打断指令的正常秩序流程。

●设计良好的程序应该在异步发生时提供处理这些不正常事件的方法,使程序不会因为异常的发生而阻断或产生不可预见的结果。

●java语言使用异常处理机制为程序提供了异常处理的能力。

PublicclassTestException()

{

Publicstaticvoidmain(String[]args)

{

String[]friends={“lisa”,“bily”,“kessy”};

for(inti=0;i<5;i++)

{

System.out.println(friends[i]);

}

}

}

 

异常的分类:

●java程序运行过程中所发生的异常事件从严重性可分为两类:

1.错误(Error):

JVM系统内部错误或资源耗尽等严重情况,属于JVM需要负担的责任。

这一类异常事件无法恢复或不可能捕获,将导致应用程序中断。

2.异常(Exception):

其它因编程错误或偶尔的外在因素导致的一般性问题。

这类异常得到恰当的处理时,程序有机会恢复至正常运行状况。

●程序员通常只能处理异常(Exception),而对错误(Error)无能为力。

异常处理机制:

●java程序在执行过程中如果出现异常,会自动生成一个异常类对象,该异常对象将被自动提交给JVM,这个过程称为抛出(throw)异常。

●当JVM接受到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获(catch)异常和处理异常。

 

●如果JVM找不到可以捕获异常的代码,则运行时系统将终止,相应的java粗也将退出。

异常的分类:

●Error:

称为错误,由java虚拟机(JVM)生成并抛出,程序对其不做处理。

●Exception:

所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或捕获。

●RuntimeException:

一类特殊的异常,如被0除,数组下标超出范围等,其产生比较频繁,处理麻烦,如果显示的声明或捕获将会对程序可读性和运行效率影响很大。

因此由系统自动检测并将它们交给缺省的异常处理程序。

受检异常又叫已检查异常;

非受检异常又叫未检查异常

 

异常的分类:

●非受检(Unchecked)异常:

编译器不要求强制处置的异常。

(RunException)

一般是指编程时的逻辑错误。

是程序员应该积极避免其出现的异常

java.lang.RuntimeException及它的子类都是非受检异常:

错误的类型转换:

java.lang.ClassCastException

数组下标越界:

java.lang.ArrayIndexOutOfBoundsException

空指针访问:

java.lang.NullPointerException

算术异常(除0溢出):

java.lang.ArithmeticException

●受检(checked)异常:

编译器要求必须处置的异常。

指的是程序在运行时由于外界因素造成的一般性异常。

没有找到指定名称的类:

java.lang.ClassNotFoundException

访问不存在的文件:

java.io.FileNotFoundException

操作文件时发生的异常:

java.io.IOException

操作数据库时发生的异常:

java.sql.SQLException

 

Exception的层次关系:

●Exception的子类很多,大致可以分为三类,有关IO的IOException,有关运行时异常的RuntimeException,以及其他的异常:

1.IOException是由于IO系统堵塞等原因引起的异常,包括:

(1)试图从文件结尾处读取信息

(2)试图打开一个不存在或者格式错误的url

2.RuntimeException是由于程序编写过程中不周全而引起的,包括:

(1)错误的类型转换

(2)数组越界访问

(3)数字计算错误

(4)试图访问一个空对象

3.其他异常:

(1)用Class.forName()来初始化一个类的时候,字符串参数或对应的类不存在

(2)其他

 

常见异常:

●RuntimeException

ArithmeticException:

数学计算异常

NullPointException:

空指针异常

NegativeArraySizeException:

负数组长度异常

ArrayIndexOutOfBoundsException:

数组索引越界异常

ClassNotFoundException:

类文件未找到异常

●IOException:

FileNotFoundException:

文件未找到异常

EOFException:

读写文件尾异常

MalformedURLException:

URL格式错误异常

SocketException:

Socket异常

异常处理举例:

publicclassTestException

{

publicstaticvoidmain(String[]args)

{

Srring[]friends={“lisa”,“bily”,“kessy”};

try

{

for(inti=;i<5;i++)

{

System.out.println(friends[i]);

}

}catch(ArrayIndexOutOfBoundsExceptione)

{

System.out.println(“发生异常,请稍候再试....”);

}

}

}

异常处理机制:

●在整个java的异常处理中,实际上也是按照面向对象的方式进行处理的,步骤如下:

1.一旦产生异常,则首先会产生一个异常类的实例化对象;

2.在try语句中对此异常对象进行捕捉;

3.产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功,则执行catch语句中的代码。

⊙try代码段包含的是可能产生异常的代码

⊙try代码段后跟一个或多个catch代码段(或跟一个finally代码段)

⊙每个catch代码段只声明一种其能处理的特定类型的异常,并提供处理的方法。

⊙当异常发生时,程序会中止当前的流程去执行相应的catch代码段。

⊙finally段的代码无论是否发生异常都执行。

 

异常捕获和处理:

try语句:

1.try{...}语句包含了一段代码,这段代码就是一次捕获并处理异常的范围。

2.在执行过程中,该段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。

catch语句:

⊙在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。

⊙在catch中声明的异常对象(catch(ExceptionNamee))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息。

如:

getMessage()方法,用来获得有关异常事件的字符串信息。

printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。

⊙使用多重catch语句,异常子类一定要位于异常父类之前。

如果没有异常产生,所有的catch段的代码都会被忽略不被执行。

 

异常的捕获和处理:

●finally语句:

1.finally语句为异常处理提供一个统一的出口,使得在控制流转到程序的其他部分以前,能够对程序的状态作统一的管理。

2.无论在try代码块中是否发生了异常事件,finally块中的语句都会被执行。

3.通常在finally语句块中可以进行资源的清理工作,如:

⊙关闭打开的文件

⊙删除临时文件

⊙关闭数据库的连接等

finally语句是可选的。

 

throws关键字:

●在定义一个方法的时候可以使用throws关键字声明,使用throws声明的方法表示此方法不处理异常,而交给方法的调用出进行处理。

●throws使用格式:

public返回值类型方法名(参数表)throws异常类1,异常类2...{.....}

使用throw和throws:

●throw关键字用来在方法代码中主动抛出一个异常。

⊙如果方法代码中自行抛出的异常是受检异常,则这个方法要用throws关键字声明这个异常。

●throws用来声明一个方法可能会抛出的所有异常。

跟在方法签名的后面

⊙如果一个方法声明的是受检异常,则在调用这个方法之处必须处置这个异常(谁调用谁处理)

显示捕获这个异常

继续用throws向上声明

注:

重写一个方法时,它所声明的异常范围不能被扩大。

Exception与RuntimeException:

⊙这两个类的区别如下:

*Exception在程序中时必须进行处理的

*RuntimeException可以不使用try...catch进行处理,但是如果有异常产生,则异常将有JVM进行处理。

 

自定义异常:

●创建自定义异常

继承自Exception或其子类,习惯上包装一下父类的构造方法。

publicclassMyExceptionextendsException

{

publicMyException(){super();}

publicMyException(Stringmsg){super(msg);}

publicMyException(Throwablecause){super(cause);}

publicMyException(Stringmsg,Throwablecause){super(msg,cause);}

}

●使用自定义异常:

publicString[]createArray(intlength)throwsMyException

{

if(length<0)

{

thrownewMyException(“数组长度小于0,不合法!

”);

}

returnString[length];

}

异常实践:

●观察抛出的异常的名字和行号重要

●调用JDK提供的类的方法前,阅读其API文档了解它可能会产生的异常。

然后再据此决定自己是应该处理这些异常还是将其加入throws列表。

应捕获和处理那些已知如何处理的异常,而传递那些不知如何处理的异常。

●尽量减小try语句块的体积

●在处理异常时,应该打印出该异常的堆栈信息以方便调试。

 

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1