Java异常处理、多线程ppt课件.ppt

Java异常处理、多线程ppt课件.ppt

ID:59417318

大小:483.50 KB

页数:41页

时间:2020-09-19

Java异常处理、多线程ppt课件.ppt_第1页
Java异常处理、多线程ppt课件.ppt_第2页
Java异常处理、多线程ppt课件.ppt_第3页
Java异常处理、多线程ppt课件.ppt_第4页
Java异常处理、多线程ppt课件.ppt_第5页
资源描述:

《Java异常处理、多线程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java异常处理、多线程什么是Java异常(Exception)从字面理解,异常(Exception)就是超出了程序员预计的某些特殊情况。Java中的异常提供了一种识别及响应错误情况的机制,有效地异常处理,能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错?在哪出的错?为什么出错?当异常使用恰当时,所抛出异常的类型可以表明什么程序错误发生了,而StackTrace可以告诉我们什么地方发生了错误,至于为什么发生错误,则可以通过查看异常信息和StackTrace来了解。

2、如果你发现你的异常不能回答以上问题,那一定是你没有把它们用对。当调试程序时,有三个原则,将会帮助你更好的使用异常,即:具体化、早throw及晚Catch。JAVA异常的类型Throwable类Throwable类是Java语言中所有错误或异常的超类。只有当对象是此类或其子类的实例时,才能通过Java虚拟机或者Javathrow语句抛出。Throwable类有两个直接子类:Error和Exception。Error类Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情况。应用程序不应该抛出这种类型的对

3、象。这种错误一般无法挽救,只能靠JVM,程序中不用处理此类异常。Exception类Exception有两个分支:RuntimeException的子类,以及不从它衍生的其他异常。由程序错误导致的异常属于RuntimeException,而程序本身没有问题,但由于像IO错误这类问题导致的异常,属于其它异常。派生自RuntimeException的异常包括下面的情况:1、错误的类型转换;2、数组越界;3、访问空指针。不是派生自RuntimeException的异常包括:1、试图从文件尾后面读取数据;2、试图打开一个

4、错误格式的URL;3、试图用一个字符串来构造一个Class对象,而当该字符串对应的类并不存在。如果出现RuntimeException异常,那么就一定是你的问题。Java语言规范中将任何Error的子类以及RuntimeException的子类都称为“未检查异常”,而其他的异常则称为“已检查异常”。“未检查异常”要么不可控制(Error),要么就应该避免发生(RuntimeException)。只有“已检查异常”才是程序员所关心的,程序应该且仅应该抛出或处理“已检查异常”。一个方法必须声明它可能抛出的全部“已检查

5、异常”。如果没有声明所有可能发生的“已检查异常”,编译器就会给出一个错误消息。Java异常的使用方法声明方法抛出异常,语法:throws…publicClassMyClass{publicStringreadFile(Stringfile)throwsFileNotFoundException,IOException{…}}多个异常之间用“,”分隔。捕获异常,语法:try{代码… }catch(FileNotFoundExceptione){ … }catch(IOExceptione){ … }finally{

6、…}finally子句始终会被执行,使用finally块释放资源,如:输入输出流、数据库连接等。1)代码不抛出异常:执行完try块内的所有代码,随后(哪怕try块中执行了return语句)会执行finally中的代码;2)代码抛出的异常在catch中捕获:try块中发生异常剩下的语句将被忽略,随后执行相应catch块中的代码,然后执行finally从句的代码;如果catch块抛出了异常,则这个异常会返回到该方法的调用者;3)代码抛出异常,但未在任何catch块中捕获:try块内剩余代码被跳过,随后执行finall

7、y从句的代码,再将异常“抛回”该方法的调用者。不要捕获总的异常,如下:try{…}catch(Exceptione){…}一是针对try块中抛出的每种Exception,很可能需要不同的处理和恢复措施;二是try块中还可能抛出RuntimeException,掩盖了编程的错误,会导致程序难以调试。自定义异常我们可以自定义异常,派生自Exception或其子类。publicclassMyExceptionextendsException{publicMyException(){super();}publicMyEx

8、ception(Stringmsg){super(msg);}publicMyException(Stringmsg,Throwablethrowable){super(msg,throwable);}}try{…}catch(IOExceptione){thrownewMyException(“messgae”,e);}使用自定义异常封装原异常,保留原有异常的堆栈信息。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。