`

关于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中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应用的部署描述符...

    Java常见异常类型及原因分析(上).pdf

    本文主要关注两种常见的Java异常:`NullPointerException`和`ClassCastException`,并深入分析它们的产生原因以及如何预防。 首先,我们来讨论`NullPointerException`。这个异常在Java中非常常见,它发生在尝试访问...

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

    5. 另外,为了防止自动构建过程引发问题,可以关闭“Build Automatically”功能。具体操作是在工程上右键点击,然后选择 `Properties` -&gt; `Builders`,取消勾选 "PHP Project Builder"。 通过以上步骤,通常可以...

    Monkey_log分析说明

    这种异常主要是由于 NullPointerException 引起的,导致进程崩溃。在 Monkey 命令被中断时,会记录相应的日志信息,例如 plog.log 文件中。通过分析这些日志信息,可以快速定位错误的位置和原因。 例如,在某个应用...

    怎样避免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