程序的错误,一种是编译错误,在像eclipse这种时时编译的开发平台上,这一类错误是比较好解决的。另一种是在程序运行时才发生的错误。也就是我们所说的异常。
通常造成异常的原因有两个:一是编程者自身不可预料的逻辑错误,二是可以提前预料的系统自身问题。
一、异常的分类
逻辑错误一般是由于程序员在设计时采用不当的方法所造成的。比较常见的有空指针异常(NullPointerException)和数组下表越界异常(ArrayIndexOutOfBoundsException),下面两段代码便可以验证。
public static void main(String[] args) {
//定义一个字符串变量但是不赋值
String str = null;
System.out.println(str.equals("abc"));
}
public static void main(String[] args) {
//定义一个数组,长度为3
int[] arr = new int[3];
System.out.println(arr[3]);
}
由于这种异常是程序员自身不当的设计所造成的,因此系统自身没有将可能发生的异常抛出。而是在系统内部已经处理了。
另一种由于系统自身问题出现的异常,如:内存空间不足,而程序运行中提出的内存分配得不到满足,就会发生异常;在硬盘上的文件被挪离,导致程序运行文件中文件打不开而发生异常。这些问题,编程者都可以事先预料到,但是不能避免,因为你很难得知此时真正的内存情况或是文件的准确位置。Java文件操作当调用creatNewFile()函数时编译器会提示还有没有解决的异常,此时说明系统将这一类异常抛出,让给程序员自行处理了。
二、异常的处理
以上是异常的分类,下面来谈谈异常处理。首先一个软件很难一次性做到尽善尽美,因此在用户使用的时候难免会出现一些由于异常而造成的错误。我们能做的就是将这些异常控制住,在它出现时用户能够明白,而不是看着黑色的命令行发呆。(就像在一个计算器中,用户输入了10/0,出现的是一行提示,告诉用户除数设不能为零,而不是出现一行ArithmeticException :/ by zero)。这便是异常处理的意义。在可能出现异常的地方通过try块捕获以及catch解决。
当然,有时学习系统抛出异常的方法也是有必要的,假设要在一处对一些异常进行统一处理,可以通过throws将异常抛出,这种抛出指的是将异常抛给调用出现异常函数的函数中,也就是层层上抛。但是最终还是要将其解决的。看下面两种情况。
程序中出现了异常。
将异常抛出,程序员在这里就可以不用处理异常了,但我们来看看另一个地方
在抛异常函数的调用处,也就是是它的上级出现了问题,因此异常是可以层层上抛,但还是最终要对它进行处理的。
上述是对异常概念的理解以及异常处理的简单方法,异常是程序设计中的一个大问题也是大学问,要深刻地了解异常,熟练地处理异常还需要下大工夫学习,更重要的是在平时的编程中多加积累这一方面的经验。
- 大小: 11.7 KB
- 大小: 13 KB
- 大小: 9.7 KB
分享到:
相关推荐
JDK1.7以上的异常体系,需要后续的不断总结和完善,学习jdk必备!
在Java编程语言中,异常处理是一项关键特性,用于在程序执行过程中捕获并处理错误情况。这个主题,"Java异常处理体系",涉及到...通过对Java异常处理体系的深入理解和应用,开发者可以创建出更加稳定、可靠的软件系统。
这篇19页的PDF文档《深入理解java异常处理机制Java开发Java经验技巧共》可能涵盖了Java异常处理的基本概念、最佳实践以及高级用法。在Java中,异常处理通过五个关键字来实现:try、catch、finally、throw和throws。 ...
下面将详细解释给定文件中提到的一些常见Java异常,并提供解决策略。 1. **java.lang.NullPointerException**: 这个异常意味着尝试访问或操作一个null对象引用。解决方法是确保在使用对象之前已正确初始化。检查...
在这个讨论中,我们将深入理解Java异常的基本概念、异常分类、以及如何通过良好的框架设计提升代码的可读性和可维护性。 1. **Java异常基础** Java中的异常是程序运行时发生的错误,它们通常由`Exception`类及其...
本文将对C++和Java两种语言的异常处理机制进行深入的比较和分析,探讨它们的相似之处以及不同之处,以帮助开发者更好地理解和应用这两种语言。 首先,异常处理的基本目的是捕获并处理运行时错误,这些错误通常包括...
在给定的“Java异常分装实例”中,我们可以学习如何创建自定义异常类、抛出和捕获异常,以及如何利用Java的异常层次结构。`exception_test`文件可能包含了一个或多个示例代码,用于演示这些概念。 首先,创建自定义...
在Java编程中,异常处理是程序健壮性的重要组成部分,它确保了程序在遇到错误时能够优雅地处理问题,而不是突然崩溃。...同时,阅读并理解"Effective Java Exceptions"文档可以帮助进一步深化对Java异常处理的理解。
根据给定文件的信息,我们可以提炼出关于Java异常处理的一些关键知识点。尽管提供的内容与异常处理直接相关的部分较少,但基于标题、描述以及部分上下文,我们可以深入...希望以上内容能对理解Java异常处理提供帮助。
在 Java 中,Exception 类提供了一组方法用来获取异常的一些信息,例如 printStackTrace() 方法,可以打印出异常的跟踪栈信息。 下面是 Java 异常机制的继承层次结构图: * Throwable + Error + Exception - ...
总之,Java异常处理是编程实践中不可或缺的一部分,Java爱好者和开发者需要深入理解并熟练运用这些概念和技巧,以编写出更加稳定和高效的程序。通过不断地实践和学习,你会发现自己在处理复杂问题时变得更加游刃有余...
首先,我们要理解什么是Java异常。在Java中,异常是程序运行时发生的错误,这些错误可能由语法错误、逻辑错误或系统资源不足等原因引起。Java将这些错误封装成对象,称为异常对象。当异常发生时,Java会抛出(throw...
Java异常处理是编程过程中的...总的来说,理解和熟练掌握Java异常处理是成为一名合格的Java开发者的关键技能之一。通过这个全面的教程,你将能够更好地诊断和解决Java程序中的异常问题,提升代码质量与程序的稳定性。
从给定的文件内容中可以看出,这是一系列Java程序示例,它们用来...这些知识点对于理解和使用Java异常处理机制至关重要,它们帮助程序员写出健壮的代码,确保程序在面对异常情况时能够以一种可预测和可控的方式运行。
Java异常处理是编程中至关重要的一个环节,它确保了程序在遇到错误时能够优雅地运行,而不是突然崩溃。本实验报告“java实验报告4-异常处理”旨在帮助初学者掌握Java中的异常处理机制,以及如何利用log4j进行日志...
传统的错误处理方式,比如通过特殊返回值来表示异常,存在一些问题,如混淆正确的返回值和异常值,降低代码可读性,以及要求调用者对底层函数有深入理解。而Java的异常处理则解决了这些问题,通过抛出异常对象并捕获...
理解Java异常原理对于编写健壮和可维护的代码至关重要。 1. 异常的分类: Java异常主要分为两大类:Error和Exception。Error是系统级错误,通常由JVM(Java虚拟机)报告,如内存溢出、线程死锁等,程序员通常无法...
在Java编程语言中,异常处理是一项至关重要的技能,它确保了程序在遇到错误或异常情况时能够优雅地处理问题,而不是突然崩溃。...通过对`demo9`等示例代码的分析和修改,加深对Java异常处理机制的理解,提升编程能力。