- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.javaSE异常与多线程
异常与多线程异常异常是发生在一个程序执行期间发生的事件。java.lang.Throwable是所有异常的超类。异常的分类异常分为两大类错误(Error)、异常(Exception)java不捕获也不抛出异常。只处理Exception类的各子类对象。Exception 子类有RuntimeException、SQLException、ClassNotFoundException ....等。Exception又分为运行时异常(untimeException)也称不检查异常(Unchecked Exception),和非运行期异常也称为检查异常(Checked Exception )。??Error:称为错误,由Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。??Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显式的声明或捕获。??RuntimeException:一类特殊的异常,如被0除、数组下标超范围等,其产生比较频繁,处理麻烦,如果显式的声明或捕获将会对程序可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。常用的异常类------------------------------------Java中常用的异常类--------------------------------------ClassCastException类型转换异常类| ClassNotFoundException未找到相应类的异常类|ArithmeticException算术异常类|ArrayIndexOutOfBountException数组下标越界异常类|ArrayStoreException数组中包含不兼容的值抛出的异常类|SQLException操作数据库异常类|NullPointerException对象未实例化的异常类|NoSuchFieldException字段未找到异常类|NoSuchMethodException方法未找到抛出的异常类|NumberFormatException字符串转换为数字格式错误抛出的异常类| NegativeArraySizeException数组元素个数为负数抛出的异常| StringIndexOutOfBoundsException字符串索引超出范围抛出的异常类|IOException输入输出异常类|IllegalAccessException非法访问的异常类|EOFException文件已结束异常类|FileNotFoundException文件未找到异常类| ———————————————————————————————————————————|异常捕获Java语言的异常捕获结构由try、catch、finally三部分组成。finally语句块是异常处理结构的最后执行部分,不管try块中的代码如何退出,都将执行finally块。当程序发生异常时,Java的异常处理机制将按以下步骤处理。1)产生异常对象,这个对象可以由系统产生,也可以在程序中用new创建,然后中断当前正在执行的代码,抛出异常对象。2)如果程序执行中产生多种不同的异常,则可以使用多个catcth块来分别捕获这些异常。按照程序中catch的编写顺序查找合适的异常匹配,一旦找到就认为异常已经得到处理。3)如果有匹配执行相应的处理代码,然后继续执行本try块之外的的其他程序。否则这个没有被程序捕获的异常将由默认处理程序处理,默认处理程序将显示异常的字符串、异常发生的位置等信息,并终止整个程序的执行并退出。try语句的嵌套显式嵌套在程序中某一个try块又包含另一个try块,当内层try块抛出异常对象时,首先对内层try块的catch语句进行检查,若与抛出的异常类型匹配则由该catch处理,否则由外层try块的catch处理。隐式嵌套在两个方法中,若在方法1的try块中调用方法2,而方法2中又包含了一个try块,则方法1中try块为外层,方法2中的try块为内层。回避异常可能会发生异常,但又不想在当前方法中处理这个异常。(throw语句)用户自定义异常类1)创建用户自定义异常类2)在方法中通过throw关键字抛出异常对象。3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理否则在方法中声明处理通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。4)在出现异常方法的调用者中捕获并处理异常。异常总结异常总结,应遵循的原则先逮小再逮大简化代码,不要因加入异常处理而使程序变得复杂。尽可能在当前方法声明中使用try-catch语句捕获异常。一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子
文档评论(0)