`

关于NullPointerException的引发原因

阅读更多

NullPointerException,为什么报这种错误,让你知道原因却也云里雾里,整死人。。正所谓会了不难,难了不会。现在写下与大家分享。这种报错肯定是java代码的错。以下是从网上看到的,很好:

[ 所谓空指针异常,是因为用空(null)去调用属性或方法。
null表示没有这个对象,既然没有这个对象,那么去调用他的属性和方法,就会报异常。
<--主要有以下几种原因:
1、使用了未初始化的变量(虽然已经声明)
2、使用了未初始化的对象(虽然已经声明)
3、使用了关键字或已存在的类名作变量对象方法或类名。

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
<--这种情况包括:
调用 null对象的实例方法。
访问或修改null对象的字段。
将null作为一个数组,获得其长度。
将null作为一个数组,访问或修改其时间片。
将null作为Throwable值抛出。]

但我看完之后还是感觉无从下手,不知错在什么地方。毕竟javabean没有任何语法上的错误,真是难过。语法上没错,逻辑上肯定有错。所以建议从逻辑着手。现在以自己的程序为例。我的程序是实现留言簿的。其过程是将表单的内容先写入DB,在从DB中读取数据到留言簿。下面是我解决问题的流程:

1、数据库问题。抛出空指针异常,那就是数据没有传过来。自信已经把Oracle搞定(专做的服务器,本机只安装客户端就ok。甲骨文也真是名不虚传,也能整死人),只是连通没有测试到底能不能自如读写数据。试试才发现不能,为什么,没有Oracle jdbc驱动,此时激动不已,以为原因很有可能就在这里。。百般之后,数据库已经没有问题,但仍然NullPointerException。。。。。继续努力

2、还是要走逻辑。无论怎么执行程序,发现数据表是空的,显然没有执行数据写入操作。切断从DB中读取数据到留言簿的逻辑。于是就可以先来排查此之前的逻辑问题。为什么会写入失败?此时我尝试不把表单中的数据写入数据库,而是通过jsp页面输出。奇怪的问题出现了,使用Bean的属性方法没有问题,而使用getProperty失败。为什么?前者是直接调用Bean的属性方法,当然没问题。后者则不同,为了获得属性a的值,默认使用的bean方法为getA(),如果javabean中写为了getAb()那就肯定不行了。我正是犯的这个错误。。。。汗阿。这样一来值传不过去,在写入DB时所对应的变量当然是空的了。

分享到:
评论

相关推荐

    java 空指针异常(NullPointerException)

    Java中的空指针异常(NullPointerException)是编程过程中常见的错误类型,尤其对于新手开发者来说更为常见。这个异常通常在试图访问或操作一个值为null的对象引用时抛出。下面将详细探讨这一异常的原因、表现形式、...

    java.lang.NullPointerException的解决方法

    具体来说,如果将这两个软件安装在非根目录下的子目录中,可能会因为路径问题引发各种兼容性和配置上的错误,其中就包括`java.lang.NullPointerException`。 **原因解析:** - **路径长度限制**:Windows系统对...

    详解Java中NullPointerException异常的原因详解以及解决方法

    在本文中,我们将深入探讨`NullPointerException`的原因、如何识别它以及如何解决它。 首先,理解Java中的引用类型是关键。在Java中,对象变量实际上是对象的引用,而不是对象本身。当我们声明一个对象变量,如`...

    An internal error occurred during: java.lang.NullPointerException

    遇到“MyEclipse在启动Tomcat时出现‘An internal error occurred during: "Calculating completion proposals..."’的警告窗口,通常是由于`java.lang.NullPointerException`异常引起的。通过检查项目配置、更新...

    深入学习Spring Boot排查 @Transactional 引起的 NullPointerException问题

    深入学习Spring Boot排查 @Transactional 引起的 NullPointerException问题 在 Spring Boot 应用程序中,@Transactional 注解是非常常用的,它能够帮助我们管理事务,使得数据库操作更加可靠和安全。然而,在某些...

    java出现404的原因是_关于出现404错误的原因 关于出现500错误的原因

    这可能是由以下几个原因引起的: 1. **地址错误**:首先,检查URL是否正确输入。有时,一个简单的拼写错误或丢失的斜杠就可能导致404错误。 2. **Web容器配置**:在Eclipse中,你需要确保在Web应用的部署描述符...

    Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法

    不过,与所有软件一样,Zend Studio for Eclipse 在使用过程中也可能会遇到各种问题,比如本文所提到的 Java 语言中常见的 null 指针异常(java.lang.NullPointerException)。 Java 语言中的 null 指针异常是...

    Bug不能重现的原因分析及其对策

    例如,在增加一个 Role 时,输入某些数据,然后点击 Save 后出现了java.lang.NullPointerException 的错误,但不知道为什么发生了这个错误,也无法重现此 Bug。 三、 测试用例不充分 测试用例不充分也是导致 Bug ...

    怎样避免NullPointerExceptions(原创).txt

    在深入探讨解决方案之前,我们先来了解 `NullPointerException` 发生的原因: 1. **对 null 引用的操作**:当试图通过一个 `null` 值的对象调用方法或访问其成员变量时,会触发 `NullPointerException`。 2. **数组...

    Java语言程序的错误类型和产生原因.zip

    这些错误通常由于逻辑错误或对对象状态的不当操作引起,需要通过调试和测试来定位并修复。 3. **链接错误 (Linking Errors)** 链接错误发生在编译后的类加载阶段,如NoClassDefFoundError或NoSuchMethodError。这...

    DTSJava故障模式1

    以上内容总结了DTSJava故障模式中关于空指针异常的一些关键点。这些错误通常发生在开发过程中,通过仔细检查和适当处理可以避免。开发者应该始终确保在使用任何可能为`null`的对象之前进行适当的检查,以防止程序...

    捕获不可达的异常

    这通常指的是在程序执行过程中,由于某种原因,如对象引用为空(NullPointerException)、数组越界(ArrayIndexOutOfBoundsException)、除数为零(ArithmeticException)等,导致程序无法继续执行的异常。...

    各大公司Java面试题

    访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。

    Java面试题集.rar

    null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员 可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable 的子类。

    Java中常见异常类型及分析.pdf

    本文将详细介绍几种Java中常见的异常类型及其产生原因,并提供相应的解决方案。 #### 二、异常类型详解 ##### 1. NullPointerException (空指针异常) **定义:** `NullPointerException`是最常见的运行时异常之一...

    monkey日志分析.docx

    从上面的日志信息可以看出,出现了 Null 指针异常,异常信息主要是由于 NullPointerException 引起的。可以看到,异常信息记录在 plog.log 文件中,并且有对应的打印信息。 四、异常信息分析 在 Monkey 测试过程中...

Global site tag (gtag.js) - Google Analytics