- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                Java中常见异常类型及分析.pdf
                    
                   Java 常见异常类型及原因分析  
    这里介绍几种常见的异常并对原因进行分析,包括:  
     NullPointException 异常;  
      ClassCastException 异常; 
      ArrayIndexOutOfBoundsException 异常; 
     UnsupportedClassVersionError 错误;  
     NumberFormatExceptio 异常 
     堆栈溢出和内存溢出。  
1 NullPointException 异常  
    顾名思义,NullPointerException 是空指针异常。但是在Java  中没有指针,怎么会有空指 
针异常呢?  
    在C++ 中,声明的指针需要指向一个实例(通过new 方法构造),这个指针可以理解为 
地址。  
    在Java  中,虽然没有指针,但是有引用(通常称为对象引用,一般直接说对象),引用 
也是要指向一个实例对象(通过new 方法构造)的,从这种意义上说,Java  中的引用与C++ 
中的指针没有本质的区别,不同的是,处于安全的目的,在Java  中不能对引用进行操作,而 
在C++ 中可以直接进行指针的运算,例如book++等。  
    所以这里的NullPointerException 虽然不是真正的空指针异常,但本质上差不多,是因为 
引用没有指向具体的实例,所以当访问这个引用的方法的时候就会产生这种异常。例如下面 
的代码:  
    String str = 这是一个测试用的字符串!;  
    System.out.println(str.length());  
    这段代码没有问题,但是如果改成下面的代码:  
    String str ;  
    System.out.println(str.length());  
    就会产生NullPointerException 异常了,当然一般人不会犯这样低级的错误。  
    那这种异常通常是如何产生的呢?比较多见的是下面的两种情况:  
    1)把调用某个方法的返回值直接赋值给某个引用,然后调用这个引用的方法。在这种 
情况下,如果返回的值是null,必然会产生NullPointerException 异常。例如:  
    String userName=request.getParameter(userName);  
    if(userName.length()==0)  
           
    else  
          
    如果request.getParameter(userName)的结果为null,则这里就会产生这种异常。  
    2 )在方法体中调用参数的方法。这种情况下,如果调用方法的时候传递进来的值是null, 
也要产生NullPointerException 异常。  
    要解决这种异常,只需要检查异常出现在第几行(通常在集成开发环境中会提示用户错 
误发生在第几行),然后查看调用了哪个对象的方法,然后检查这个对象为什么没有赋值成 
功即可。  
    要避免程序产生这种异常,比较好的解决方法是在调用某个对象的方法时候判断这个对 
象是否可能为空,如果可能,则增加判断的语句,例如上面的代码可以写成:  
    if(str!=null)  
        System.out.println(str.length());  
    else  
        System.out.println(0);  
2 ClassCastException  
    从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误。下面对产生 
ClassCastException 异常的原因进行分析,然后给出这种异常的解决方法。  
    这种异常是如何产生的呢?举一个比较形象的例子。  
    Animal 表示动物,Dog 表示狗,是动物的子类,Cat 表示猫,是动物的子类。看下面的 
代码:  
    Animal a1 = new Dog();  // 1  
    Animal a2 = new Cat();  // 2  
    Dog d1 = (Dog)a1;         //3  
    Dog d2 = (Dog)a2;        //4  
    第3 行代码和第4 行代码基本相同,从字面意思看都是把动物(Animal )强制转换为狗 
 (Dog),但是第4 行代码将产生java.lang.Class
                您可能关注的文档
- (福建)山美水库大坝变形观测资料的初步分析.pdf
- (科技进步与对策)区域集聚与全球化-中小企业成长战略悖论性选择.pdf
- 08管理学答案.pdf
- 2006级《牧草栽培学》试卷.pdf
- ABS_PC共混合金组成与性能的研究.pdf
- ABS的组成和控制原理方法.pdf
- AdHoc网络中的密钥管理策略.pdf
- Al_2O_3_Ti_3SiC_2层状复合材料的制备与性能.pdf
- Android开发学习笔记:数据存取之File浅析.pdf
- APS技术在机组DCS改造中的应用.pdf
- 2025年南京市公务员考试《申论》押题卷(国家农高区主题).doc
- 2025年江西省景德镇市九年级地理上册期中考试试卷及答案.docx
- 2025年江苏省徐州市八年级英语上册期中考试试卷及答案.docx
- 2025年南宁市公务员考试《申论》押题金卷(“无废城市”建设主题).doc
- 西师版高二数学上册月考考试卷附答案.docx
- 2025年江西省九江市八年级道德与法治上册期中考试试卷及答案.docx
- 2025年江西省吉安市九年级语文上册期中考试试卷及答案.docx
- 2025及未来5年数模影音转换器项目投资价值分析报告.docx
- 2025年江苏省无锡市初三语文上册期中考试试卷及答案.docx
- 2025年江西省吉安市六年级道德与法治上册期中考试试卷及答案.docx
最近下载
- 五年级奥数相遇问题及答案.pdf VIP
- 五年级数学奥数讲义.pdf VIP
- 最新××镇村(社区)后备干部考试卷及答案.pdf VIP
- 五年级数学奥数讲义134讲.doc VIP
- 牛羊屠宰兽医卫生检验人员理论考试题库及答案.docx VIP
- 牛品种改良与人工授精技术培训课件.ppt
- 2025年综合类-电力机车钳工-电力机车钳工(高级)历年真题摘选带答案(5卷单选题100道).docx VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级)历年真题摘选带答案(5卷单选一百题).docx VIP
- 2025年综合类-电力机车钳工-电力机车钳工(高级技师)历年真题摘选带答案(5卷单选100题合辑).docx VIP
- 马来酸氯苯那敏片详细说明书与重点.docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)