`

Java三种常见异常及解决

阅读更多
http://developer.51cto.com  2009-08-04 09:09  luobo  IT专家网 
  • 摘要:对于Java的常见异常,程序开发人员要从两个方面去了解。一是要知道有哪些常见的Java应用程序异常,二是需要知道哪些原因可能会造成这个异常。
  • 标签:Java常见异常

 

异常跟普通的警告等有一定的区别。当应用程序发生异常时,会中断正在执行的程序的正常指令流。也就是说,发生异常后面的代码将得不到正确的执行。甚至还会触发数据库的回退操作。

在Java的常见异常中,异常包括预定义异常与自定义异常。这两种异常的类型互为补充。作为一个合格的程序开发人员,要善于在应用程序中使用异常。这可以提高应用程序的交互性。同时,也是保证应用程序正常运行的前提。故异常的处理对于开发一个优秀的应用程序来说非常的重要。为此笔者认为程序开发人员应该对Java应用程序的常见异常有一个深入的了解。只有在了解这些常见异常的情况下,才能够做好自定义异常的处理。

一、Java常见异常的类型与原因

对于Java应用程序的常见异常,笔者认为程序开发人员要从两个方面去了解。一是要知道有哪些常见的Java应用程序异常,二是需要知道哪些原因可能会造成这个异常。这不仅需要程序管理人员在日常工作中要注意积累,在必要的情况下还需要去从其它渠道收集资料。笔者对此就进行一个分析,希望能够对各位程序开发人员有一定的帮助。

1、 SQLException:操作数据库异常类

现在的Java应用程序大部分都是依赖于数据库运行的。当Java应用程序与数据库进行沟通时如果产生了错误,就会触发这个类。同时会将数据库的错误信息通过这个类显示给用户。也就是说,这个操作数据库异常类是数据库与用户之间异常信息传递的桥梁。如现在用户往系统中插入数据,而在数据库中规定某个字段必须唯一。当用户插入数据的时候,如果这个字段的值跟现有的纪录重复了,违反了数据库的唯一性约束,此时数据库就会跑出一个异常信息。这个信息一般用户可能看不到,因为其发生在数据库层面的。此时这个操作数据库异常类就会捕捉到数据库的这个异常信息,并将这个异常信息传递到前台。如此的话,前台用户就可以根据这个异常信息来分析发生错误的原因。这就是这个操作数据库异常类的主要用途。在Java应用程序中,所有数据库操作发生异常时,都会触发这一个类。所有此时Java应用程序本身的提示信息往往过于笼统,只是说与数据库交互出现错误,没有多大的参考价值。此时反而是数据库的提示信息更加有使用价值。

2、 ClassCastException:数据类型转换异常

在Java应用程序中,有时候需要对数据类型进行转换。这个转换包括显示的转换与隐式的转换。不过无论怎么转换,都必须要符合一个前提的条件,即数据类型的兼容性。如果在数据转换的过程中,违反了这个原则,那么就会触发数据类型转换异常。如现在在应用程序中,开发人员需要将一个字符型的日期数据转换为数据库所能够接受的日期型数据,此时只需要在前台应用程序中进行控制,一般不会有问题。但是,如果前台应用程序缺乏相关的控制,如用户在输入日期的时候只输入月、日信息,而没有年份的信息。此时应用程序在进行数据类型转换的时候,就会出现异常。根据笔者的经验,数据类型转换异常在应用程序开发中使一个出现的比较多的异常,也是一个比较低级的异常。因为大部分情况下,都可以在应用程序窗口中对数据类型进行一些强制的控制。即在数据类型进行转换之前,就保证数据类型的兼容性。如此的话,就不容易造成数据类型的转换异常。如在只允许数值类型的字段中,可以设置不允许用户输入数值以外的字符。虽然说有了异常处理机制,可以保证应用程序不会被错误的运行。但是在实际开发中,还是要尽可能多的预见错误发生的原因,尽量避免异常的发生。

3、NumberFormatException:字符串转换为数字类型时抛出的异常

在数据类型转换过程中,如果是字符型转换为数字型过程中出现的问题,对于这个异常在Java程序中采用了一个独立的异常,即NumberFormatException。如现在讲字符型的数据“123456”转换为数值型数据时,是允许的。但是如果字符型数据中包含了非数字型的字符,如123#56,此时转换为数值型时就会出现异常。系统就会捕捉到这个异常,并进行处理。

Java常见的异常类还有很多。如未找到相应类异常、不允许访问某些类异常、文件已经结束异常、文件未找到异常、字段未找到异常等等。一般系统开发人员都可以根据这个异常名来判断当前异常的类型。虽然不错,但是好记性不如烂笔头。程序开发人员在必要的时候(特别是存在自定义异常的时候),最后手头有一份异常明细表。如此的话,无论是应用程序在调试过程中发现问题,还是运行过程中接到用户的投诉,都可以及时的根据异常名字来找到异常发生的原因。从而可以在最短时间内解决异常,恢复应用程序的正常运行。这个措施笔者用了很多年,非常的有效。

二、异常管理的实用建议

对于操作数据库异常来说,Java应用程序只提供了一个异常类。故光凭Java应用程序的错误信息,往往不能够帮助应用程序人员排除错误的原因。只能够指名是应用程序错误还是数据库错误导致的这个异常。为了更进一步指明问题的原因,在数据库层面定义异常的时候,最好能够说明具体的原因。如前台应用程序可能会调用数据库的函数或者过程。此时在数据库的函数或者过程中做好能够说明某个异常的具体原因。如根据某个基础表生成另一张表的时候,某个字段不能够为空等等。将这些异常信息说明清楚后,如果真的遇到类似的异常时,操作数据库异常类就会将数据库的异常信息反会给前台用户。从而有利于用户寻找问题的原因,并在最短时间内改正。当然,这需要Java程序员与数据库设计人员进行协调。

其次需要注意的是,异常并不是常态。也就是说,大部分异常可以通过前提的合理预见与预防,来消除。如设计到四则运算,可以在前台应用程序窗口中限制在除数字段内输入0值等手段来消除应用程序运行中可能产生的异常。不过这往往要求应用程序开发人员有比较丰富的工作经验以及由比较严密的思维逻辑。虽然这有一定的难度,但是笔者认为程序开发人员还是应该往这方面努力,而不要老是让用户作为你的试验品,让用户来发现应用程序中的设计Bug。笔者认为,只有一些实在是程序人员无法控制的因素才允许抛出异常。如果应用程序开发人员能够意识到这种错误、但是仍然没有引起重视或者采取有效的措施防止出现这种异常,那么笔者是不允许的

分享到:
评论

相关推荐

    java常见异常的解决方案

    ### Java常见异常及其解决方案 #### 1. `java.lang.NullPointerException` **异常描述:** `NullPointerException`是最常见的运行时异常之一,通常发生在试图访问一个尚未初始化或者被设置为`null`的对象实例时。...

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

    ### Java中常见异常类型及分析 #### 一、概述 在Java编程中,异常处理是一项重要的技术,它有助于开发者在程序运行过程中及时发现并处理错误,确保程序的稳定性和健壮性。Java语言中提供了丰富的异常处理机制,...

    常见异常及解决办法

    java常见异常及解决办法

    JAVA常见异常解析,面试用

    以下是一些Java常见异常的详细解析: 1. **java.lang.NullPointerException**: 当尝试访问或操作一个未初始化的对象引用时,会抛出此异常。确保在使用对象之前已经正确地初始化它,避免对null值进行方法调用或...

    JAVA中常见的异常

    以上列举了几种常见的Java异常类型及其处理策略。理解这些异常的触发原因以及如何避免它们对于编写健壮可靠的Java程序至关重要。除了上述异常之外,Java还提供了许多其他类型的异常来处理不同的错误情况,开发者应该...

    java常见异常以及处理

    Java常见异常及其处理 Java编程过程中经常会遇到各种异常,了解这些异常的类型、原因和解决方法是非常重要的。以下是 Java 中常见的异常类型及其处理方法: 1. NullPointerException(空指针异常) 这个异常的...

    java开发常见错误异常

    在 Java 开发过程中,常见的错误异常包括 HTML 标签的常见错误、MySQL 常见错误异常、Oracle 常见错误异常、连接池异常、Maven 常见异常、Hibernate 常见异常、Struts2 常见异常等。下面将对这些常见错误异常进行...

    java中常见的异常类

    在 Java 中,异常可以分为两种: checked 异常和 unchecked 异常。checked 异常是编译器检查的异常,我们需要在编译时处理这些异常。unchecked 异常是运行时异常,我们需要在运行时处理这些异常。 了解和掌握这些...

    java和jsp编程常见到的异常解决方案

    这是关于java和jsp编程常见到的异常解决方案,是很关键的一个知识!

    Java常见异常汇总.pdf

    Java常见异常汇总 Java语言中有一些常见的异常,了解这些异常可以帮助开发者更好地编写和 debug 程序。下面我们来总结一些常见的Java异常: 1. java.lang.NullPointerException 这个异常大家肯定都经常遇到,异常...

    JAVA基础测试中常见的异常问题汇总

    ArithmeticException、NullPointerException等常见异常 Java中定义了许多异常类型,用于处理各种预期之外的情况: - `ArithmeticException`:当执行算术运算时发生错误,如除以零。 - `NullPointerException`:...

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

    在文档《Java常见异常类型及原因分析(下)》中,介绍了几种常见的Java异常类型及其产生原因,并提供了相应的分析。 首先,ArrayIndexOutOfBoundsException异常是在进行数组操作时最常见的异常之一。这个异常发生在...

    java内存机制及异常处理

    常见的内存错误包括`java.lang.OutOfMemoryError: Heap space`(堆空间不足)、`java.lang.OutOfMemoryError: PermGen space`(方法区空间不足)和`java.lang.StackOverflowError`(栈溢出)。这些错误通常由于物理...

    Java中常见的异常以及解决方案

    ### Java中常见的异常及其解决方案 #### 一、空指针异常 (NullPointerException) **定义:** 空指针异常(`NullPointerException`)是Java中最常见的运行时异常之一,它发生在尝试访问一个空对象引用的属性或调用...

    JAVA常见异常BUG

    ### JAVA常见异常BUG详解 #### 一、Java.lang.ArrayStoreException **定义**: `java.lang.ArrayStoreException` 是一种运行时异常(RuntimeException),当尝试向一个特定类型的对象数组存储不兼容类型的对象时...

    java异常分析及解决办法

    下面将详细解释给定文件中提到的一些常见Java异常,并提供解决策略。 1. **java.lang.NullPointerException**: 这个异常意味着尝试访问或操作一个null对象引用。解决方法是确保在使用对象之前已正确初始化。检查...

    Java常见异常总结

    ### Java常见异常总结 在Java编程中,遇到异常是家常便饭,它们是程序运行过程中出现错误的信号。为了帮助开发者更好地理解和处理这些异常,本文将深入探讨一系列常见的Java异常,涵盖从基本的`ArithmeticException...

    java常见异常汇总

    ### Java常见异常汇总 #### 1. `org.apache.commons.collections.SequencedHashMap`签名信息不匹配 **异常描述**:`org.apache.commons.collections.SequencedHashMap` 的签名信息与同包内其他类的签名信息不匹配...

    Java常见异常和错误总结

    ### Java常见异常和错误总结 #### 1. java.lang.NullPointerException (空指针异常) - **定义**: 当尝试调用未经初始化的对象或是不存在的对象时触发的异常。 - **常见场景**: - 图片处理中,若图片未初始化或...

    java常见的异常

    了解并正确处理这些常见异常是每个Java开发者的基本技能。通过良好的异常处理策略,不仅可以使程序更加健壮,还能提供有价值的错误信息,帮助快速定位和解决问题。在实际开发中,结合日志记录和调试工具,可以更有效...

Global site tag (gtag.js) - Google Analytics