`
孤独的CPU
  • 浏览: 1246 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java中NullPointerException的小思考

 
阅读更多

上班没有多长时间,就因为这个问题让领导侧面批评了好几次。。我这个脑子。。。

老大再三的给我强调,一定要注意这个东西。除了这个东西,你在页面上捕捉不到,给人的感觉,就是,没反应。甚至,如果你用的是一些解释型的框架,在这个异常之后的控件解析代码根本就不会运行,页面上的反应就是一片空白。

这个问题,可以扯到程序的健壮性上面。看公司的workshop,里面一些牛人再谈到这个话题的时候,是这么说的:当你把一个个的业务处理逻辑分割成几个小的算法(方法)的时候,在进入到这个方法的时候,第一步写的一定不是真是的逻辑代码,而是对参数做一个有效性的验证。而这个,也是防止空指针的绝大多数的好的方法。NULL,这个东西是没有任何的属性方法的,你敢调用,就敢异常。

大家都吃过这个亏,所以,你会看到他们的代码中到处是这样的逻辑校验。举个简单的例子:我们不知道持久层的查询结果是NULL还是一个空的List,所以我们会做双重的校验。那么如果真的查不到结果,或者说在查的过程中抛异常了,这样做是不是就把真正的原因给吞噬了?调用者只是简单的得到一个结果。这样做是不符合程序的规则的。我感觉,调用一个东西,是应该知道异常的种类的。我们需要知道精确的信息。这对我们维护系统和重构都有很大的帮助。

 

鞭策自己:一定要做好程序健壮性的检测,否则会很丢人。

分享到:
评论

相关推荐

    JAVA小程序counter计数器

    本JAVA小程序是一个简单的计数器实现,主要目的是为了帮助JAVA编程初学者理解和掌握基本的类与对象的概念,以及如何在程序中进行数值的增减操作。通过该程序的学习,用户可以了解面向对象编程的基本思想,包括类的...

    Java异常处理和最佳实践(含案例分析).pdf

    Java异常处理并不是一个简单的事情,不仅初学者很难理解,甚至一些有经验的开发者也需要花费很多时间来思考如何处理异常。阿里巴巴Java开发规范中有15条关于异常处理的说明,但是这些说明告诉了我们应该怎么做,却...

    java程序员初学20道题

    JDBC(Java Database Connectivity)是Java中用来对数据库进行统一访问、管理的一种机制。通过JDBC,开发人员可以使用标准Java API来连接不同的数据库管理系统。 - **JDBC驱动模型**:JDBC提供了四种不同类型的驱动...

    java 考试试题001

    Java通过try-catch-finally语句块来捕获和处理异常,学习何时使用try-catch,理解不同类型的异常,如IOException和NullPointerException,以及如何自定义异常。 4. **集合框架** 集合是存储多个对象的数据结构。...

    简单实用java代码

    在IT领域,特别是软件开发行业中,Java作为一种广泛使用的编程语言,其代码的编写与优化是开发者们日常工作中不可或缺的一部分。本文将围绕一个简单的Java代码片段进行深入解析,旨在揭示其背后的逻辑、应用场景以及...

    java面试问题集锦(92个真题)-腾讯QQ

    - 异常类层次:了解Exception及其子类,如IOException、NullPointerException等。 - try-catch-finally:理解如何捕获和处理异常,以及finally块的作用。 5. **集合框架** - List、Set、Queue:理解它们的区别和...

    java 方法的流程控制与异常处理

    Java中的异常分为两大类:**运行时异常**(如`NullPointerException`)和**检查性异常**(必须被捕获或者声明抛出)。 - **抛出**:当发生异常情况时,程序通过`throw`关键字显式地抛出异常。 - **捕获**:通过`...

    银海软件java面试题

    在Java语言中,`Error` 和 `Exception` 都是 `Throwable` 的子类,用于表示程序执行过程中出现的问题。它们之间的主要区别在于: - **Error** 通常表示系统级错误或程序无法处理的严重问题,如内存耗尽、线程死锁等...

    JAVA面试题解惑系列

    在准备Java面试时,不仅要理解这些概念,还要能够结合实际案例进行分析和讨论,展现出你在解决实际问题中的思考和能力。通过深入学习和实践,你将能在面试中游刃有余,展示出自己的专业素养。"JAVA面试题解惑系列...

    java基础练习题

    通过这份"java基础练习题",你可以检验自己对上述知识点的掌握程度,通过反复练习和思考,加深对Java语言的理解,提升编程能力。题目可能包括选择题、填空题、简答题以及编程题,覆盖了各种题型,旨在全面考察和训练...

    网上下的java练习题打包

    Java编程语言是面向对象的、高性能的、可移植的编程平台,被广泛应用于软件开发、网站构建...在解答这些练习题的过程中,记得理论结合实践,多思考每道题目的解题思路,这样将有助于提升你的编程思维和解决问题的能力。

    Java 考试 一般性的练习题

    - 异常类型:识别和处理常见的Java异常,如IOException、NullPointerException等。 - try-catch-finally:理解异常处理结构,学会如何捕获和处理异常。 4. **类库与集合框架** - 集合接口:ArrayList、...

    Java程序设计实验报告一1

    1. **泛型**:Java中的泛型允许在编译时检查类型安全,并且可以消除装箱和拆箱的需要。在这个实验中,`Queue<E>`和`Stack<E>`都使用了泛型,E代表任何类型的元素。 2. **接口实现**:`Queue<E>`需要实现`java.util....

    Java面向对象编程PPT教案学习.pptx

    在Java中,通过访问修饰符(如public, private, protected)来控制成员变量和方法的可见性,实现封装。 2. 继承允许子类继承父类的属性和方法,子类可以扩展或重定义父类的功能,实现代码的复用。在Java中,子类...

    Java语言程序的设计——软件实验指导书.doc

    (2) 分析实验内容中涉及的类和对象之间的关系,思考如何设计合理的类结构。(3) 编写实验内容中第(2)题的类定义和方法实现,作为预习报告。4.实验步骤及结果在实验过程中,记录以下内容:(1) 类和对象的定义、实例化...

    thinkinjava源码-TIJ4Example:Java4示例源代码中的思考

    3. **异常处理**:Java异常处理机制是其强项之一,源码中会包含try-catch-finally结构,以及不同类型的异常类,如IOException、NullPointerException等,帮助理解何时及如何捕获和处理异常。 4. **集合框架**:Java...

    Java常见面试题集及答案.docx

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。面试时,面试官通常会测试求职者的基础知识、理解深度以及实践...在面试中,除了回答问题,展示解决问题的能力和清晰的思考过程也非常重要。

    关于Java8新特性Optional类的详细解读.rar

    总的来说,Java 8的Optional类提供了一种新的思考方式来处理可能为null的对象,它鼓励程序员更积极地处理潜在的null值,以减少编程错误。然而,使用Optional时应适度,结合具体场景选择合适的方法,以达到最佳的代码...

    Optional:Java8 中可选类的反向移植

    在Java编程语言中,`Optional`类是在Java 8中引入的一个重要特性,它为解决空指针异常(NullPointerException)提供了一种优雅的处理方式。`Optional`类的设计理念是鼓励程序员更明确地表达代码中可能存在的null值,...

    Intro-to-Java-Programming-Various-Solutions:《 Daniel Liang的Java编程和数据结构简介》中教科书问题的一些解决方案

    这个"Intro-to-Java-Programming-Various-Solutions"压缩包文件显然包含了作者或使用者对书中问题的解答,旨在帮助读者理解和解决编程挑战。 在学习Java编程时,掌握以下知识点至关重要: 1. **Java基础知识**:...

Global site tag (gtag.js) - Google Analytics