对于java异常。想从两个方面谈论。
一。首先要熟悉java的异常处理,了解它的体系结构。
二。通过面向对象的思想,用现实面向对象去理解异常的一些内容。
1。error和exception的区别。
java异常都是实现Throwable的。往下分为error和exception.
两个的区别在于问题的严重程度。error是致命的,严重的,会影响系统的运行,举例来说,一个高PV的网站,他的数据库链接很少。高访问量超过网站的最大的承载压力。系统无法正常运行,最后挂掉。这就是error。再用面向对象来举例,就好比我有一输车,我在沙漠中,车没了,我是一点招也没有,巧妇难为无米之炊,谁也解决不了。问题很严重了。我无法走出沙漠,系统无法继续运行。
exception是一些异常,不是致命的。就好比电力公司,一台机票坏掉了并不影响给提供电力,有问题并不影响系统运行。
2。运行时的异常和非运行时的异常
exception又可以细分为运行时的异常和非运行时的异常。
运行时的异常:RuntimeExcetion 本身以及其子类称为运行的系统。当然RuntimeExcetion 也是继承Exception的。
非运行的异常:Exception本身以及除了RuntimeExcetion 以外,Exception的其他子类称为非运行时的异常。
有什么区别呢?
在编译上,如果方法抛出运行时的异常,调用查必须捕获。在IED中会有错误提示消息。而非运行时的异常不需要调用者进行处理。
运行时的异常是可以预料到的,而非运行时的异常是不可以预期的。
3。异常之间的转换
实现Throwable的类,彼此之间都可以进行转换。代码如下:
public class DAOException extends RuntimeException {
public DAOException(String message, Throwable cause) {
super(message, cause);
}
}
按上面总结的,Throwable大体分为error和exception,进行又可以细分为三类。
error,运行时的异常,非运行时的异常。
实现Throwable的类又是可以彼此之间进行转换,我们如何转换呢。一般分三种情况。
error转成Exception,error转成RuntimeException 还有 Exception转成RuntimeException.
在实际生产活动中。即使发了很大的错误,很致命的错误,也要让系统运行下去,碰到了error,系统也要运转。而且有些error我们也是可以进行处理的,没有必须让系统停下来。这样我们把他做成普通的异常进行处理。
Exception到RuntimeException:将检查异常转换为RuntimeException可以让程序代码变得更优雅,让开发人员集中经理设计更合理的程序代码,反过来也增加了系统发生异常的可能性。
Error到RuntimeException:目的还是一样的。把所有的异常和错误转译为不检查异常,这样可以让代码更为简洁,还有利于对错误和异常信息的统一处理。
其实代码中有大量的处理异常的代码,确实影响代码的可读性,处理异常的代码往往是和业务不相关的。
那在我们的系统中是用什么进行处理呢?是Exception还是RuntimeException呢/
这个不好说。我们可以用面向对象的思想来思考这个问题。
我从你那买了一辆车,我很高兴,周末开车出去,车突然没油了。我不高兴,找你去理论(看来我是很不讲理的),可能像我这种人太多了,汽车代理商受不了。为了避免以后的究分,在开车这个方法中抛出一个异常,告诉可能会发生车没有汽油这个异常。开车的人想要开车,必须要处理这个异常。问题看似解决了,但还有一些人,他们不喜欢默迹,就想开车,不想管不管什么异常,有异常的时候再说,车没汽油的时候再说,他们不想事前处理这些东西。他们不想处理非运行时的异常。
所以用Exception还是RuntimeException,不同的人是有不同的想法的。
但无论哪种,都应该根据实际业务,分段的,集中起来进行处理。
具体选用哪个异常还应该根据你自己对业务的理解来定。
最后来看一下Spring是选用什么来处理的异常的吧。
Spring中的所有异常都可以用org.springframework.core.NestedRuntimeException来表示,并且该基类继承的是RuntimeException
分享到:
相关推荐
JDK1.7以上的异常体系,需要后续的不断总结和完善,学习jdk必备!
这份“Java异常学习资料”包含了丰富的资源,帮助你深入理解Java异常机制,提升代码质量。 1. **异常概述** Java异常是一种在程序执行期间发生的错误或不正常情况,它可以是编译时错误,也可以是运行时错误。Java...
在Java编程语言中,异常处理是一项关键特性,用于在程序执行过程中捕获并处理错误情况。这个主题,"Java异常处理体系",涉及到...通过对Java异常处理体系的深入理解和应用,开发者可以创建出更加稳定、可靠的软件系统。
在这个讨论中,我们将深入理解Java异常的基本概念、异常分类、以及如何通过良好的框架设计提升代码的可读性和可维护性。 1. **Java异常基础** Java中的异常是程序运行时发生的错误,它们通常由`Exception`类及其...
这篇19页的PDF文档《深入理解java异常处理机制Java开发Java经验技巧共》可能涵盖了Java异常处理的基本概念、最佳实践以及高级用法。在Java中,异常处理通过五个关键字来实现:try、catch、finally、throw和throws。 ...
本文将对C++和Java两种语言的异常处理机制进行深入的比较和分析,探讨它们的相似之处以及不同之处,以帮助开发者更好地理解和应用这两种语言。 首先,异常处理的基本目的是捕获并处理运行时错误,这些错误通常包括...
Java异常处理是编程中至关重要的一个环节,它帮助开发者识别并修复程序运行时出现的问题。在Java中,异常是程序执行期间发生的不正常情况,通常会导致程序中断。下面将详细解释给定文件中提到的一些常见Java异常,并...
总之,Java异常处理是编程实践中不可或缺的一部分,Java爱好者和开发者需要深入理解并熟练运用这些概念和技巧,以编写出更加稳定和高效的程序。通过不断地实践和学习,你会发现自己在处理复杂问题时变得更加游刃有余...
在给定的“Java异常分装实例”中,我们可以学习如何创建自定义异常类、抛出和捕获异常,以及如何利用Java的异常层次结构。`exception_test`文件可能包含了一个或多个示例代码,用于演示这些概念。 首先,创建自定义...
Java异常框架是Java编程语言中处理程序运行时错误和异常的核心机制。在Java中,异常是一种特殊的对象,用于表示程序运行过程中的不正常状态。Java的异常处理模型基于\"异常处理块\",包括try、catch、finally和throw...
Java 异常机制详解 Java 异常机制是 Java 语言中的一种错误处理机制,它可以帮助开发者捕获和处理程序运行时的错误和异常。Java 异常机制包括 Error、Exception、检查异常、运行时异常、异常处理和 throws 关键字等...
在Java编程中,异常处理是程序健壮性的重要组成部分,它确保了程序在遇到错误时能够优雅地处理问题,而不是突然崩溃。...同时,阅读并理解"Effective Java Exceptions"文档可以帮助进一步深化对Java异常处理的理解。
首先,我们要理解什么是Java异常。在Java中,异常是程序运行时发生的错误,这些错误可能由语法错误、逻辑错误或系统资源不足等原因引起。Java将这些错误封装成对象,称为异常对象。当异常发生时,Java会抛出(throw...
Java异常处理是编程过程中的...总的来说,理解和熟练掌握Java异常处理是成为一名合格的Java开发者的关键技能之一。通过这个全面的教程,你将能够更好地诊断和解决Java程序中的异常问题,提升代码质量与程序的稳定性。
根据给定文件的信息,我们可以提炼出关于Java异常处理的一些关键知识点。尽管提供的内容与异常处理直接相关的部分较少,但基于标题、描述以及部分上下文,我们可以深入...希望以上内容能对理解Java异常处理提供帮助。
为了深入理解和正确实施这一机制,本文将阐述有效处理Java异常的三个重要原则,并结合JCheckbook类的示例进行讨论。 首先,Java中的异常是由Throwable类的层次结构所定义的,其中包含了Error、Exception以及...
Java异常处理的9个最佳实践涵盖了开发者在进行Java编程时应当遵循的一系列规则和方法,以确保代码的健壮性和可维护性。异常处理是编程中的一个重要部分,它能够帮助我们更有效地管理和响应程序运行时的错误情况。 ...
从给定的文件内容中可以看出,这是一系列Java程序示例,它们用来...这些知识点对于理解和使用Java异常处理机制至关重要,它们帮助程序员写出健壮的代码,确保程序在面对异常情况时能够以一种可预测和可控的方式运行。