`

java异常处理设计

    博客分类:
  • java
阅读更多

如果一个方法throws一个非运行时异常,调用该方法,编译器会要求你强制捕获异常。

运行时异常,编译器不强制程序员一定要捕获异常。可以这么记忆:编译器在编译期间无法确定,所以编译器无法给予强制提示。

总结:非运行时异常,编译器都会要求强制捕获异常,或者向上抛出异常。

 

Throwable 是所有 Java 程序中错误处理的父类 ,有两种子类: Error 和 Exception 。

Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。

Exception :表示可恢复的例外,这是可捕捉到的。

 

Exception包括非运行时异常和运行时异常。

在Exception中有一个子类RuntimeException,该类及其子类不需要强制捕获。

 

非运行时异常,也就是我们经常遇到的 IO 异常,以及 SQL 异常都是这种异常。 对于这种异常, JAVA 编译器强制要求我们必需对出现的这些异常进行 catch 。

面对这种异常不管我们是否愿意,只能自己去写一大堆 catch 块去处理可能的异常。

 

运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过 NullPointerException 异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由 Thread.run() 抛出 ,如果是单线程就被 main() 抛出 。

抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。

运行时异常是 Exception 的子类,也有一般异常的特点,是可以被 Catch 块处理的。只不过往往我们不对他处理罢了。

也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。

如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。 

在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。

如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常 ,或者是通过对异常的处理显式的控制程序退出。

异常处理的目标之一就是为了把程序从异常中恢复出来 。

 

更高层的实现应该捕获低层的异常,同时抛出可以按照高层抽象进行解释的异常。这种做法被称为异常转译。

 

分享到:
评论

相关推荐

    Java异常处理终结篇——如何进行Java异常处理设计 - 望远的个人页面 - 开源中国社区1

    Java异常处理设计是Java编程中一个至关重要的环节,它直接影响到程序的稳定性和可维护性。在Java中,异常处理是通过try-catch-finally语句块来实现的,主要涉及两大类异常:编译时异常(Checked Exception)和运行时...

    高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架

    Java 异常的基本概念和语法开始,讲述 Java 异常处理的基本知识,分析 Java 异常体系结构,对比 Spring 的异常处理框架,阐述异常处理的基本原则,并提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常...

    Java异常框架设计

    这篇博文“Java异常框架设计”可能探讨了如何有效地利用Java的异常处理机制来构建可靠的系统。在这个讨论中,我们将深入理解Java异常的基本概念、异常分类、以及如何通过良好的框架设计提升代码的可读性和可维护性。...

    java试验报告之异常处理程序设计

    总的来说,理解和熟练掌握Java异常处理是编写稳定、可靠和易于维护的代码的关键技能。通过这个实验,学生不仅学习了异常处理的基本原理,还掌握了如何设计和应用异常处理程序,这对于他们的Java编程生涯至关重要。

    Java异常处理和设计

    因此,如何高效简洁地设计异常处理是一门艺术,本文下面先讲述Java异常机制最基础的知识,然后给出在进行Java异常处理设计时的几个建议。若有不正之处,请多多谅解和指正,不胜感激。以下是本文的目录大纲:一.什么...

    C++ Java异常处理比较

    C++的这种设计允许更灵活的异常传播和处理,但也可能导致异常处理的复杂性增加。 继续执行(continuation)在两种语言中都有所体现,但在Java中,一旦`catch`块执行完毕,程序将继续从`catch`块之后的代码执行,...

    Java异常处理总结

    ### Java异常处理总结 #### 一、Java异常的基础知识 在Java编程中,异常处理是一项极其重要的技术。异常处理能够帮助开发者优雅地处理程序运行时遇到的问题,避免程序崩溃,并提供给用户友好的反馈信息。 **什么...

    java高端技术课程--Java异常处理详解

    通过深入学习这个“java高端技术课程--Java异常处理详解”,开发者不仅可以掌握如何有效地处理程序中的异常,还能学习如何设计更稳定、更具弹性的代码。同时,了解和实践良好的异常处理策略也是成为一名优秀的Java...

    Java 异常处理的 9 个最佳实践

    Java异常处理的9个最佳实践涵盖了开发者在进行Java编程时应当遵循的一系列规则和方法,以确保代码的健壮性和可维护性。异常处理是编程中的一个重要部分,它能够帮助我们更有效地管理和响应程序运行时的错误情况。 ...

    Java异常处理策略研究.pdf

    Java 异常处理机制是 Java 语言的重要标志之一,在程序设计过程中用来处理程序运行中的异常。Java 异常处理机制可以分为三部分:try 块、catch 块和 finally 块。try 块用于检测异常,catch 块用于捕获和处理异常,...

    java异常处理

    Java异常处理是编程中至关重要的一个环节,它允许程序员优雅地处理程序运行过程中可能出现的错误情况,确保程序的稳定性和健壮性。异常处理机制在Java中被设计为一种结构化的方法,使得程序在遇到不可预见的问题时,...

    JAVA 异常处理的学习

    在Java编程语言中,异常处理是一项至关重要的技能,它确保了程序在遇到错误或异常情况时能够优雅地处理,而不是突然崩溃。肖俊老师的讲解深入浅出,将帮助我们掌握这一核心概念。以下是对"JAVA 异常处理的学习"主题...

    java编程中异常处理的优劣观

    首先,我们来看一下Java异常处理的优点: 1. **提高程序的健壮性**:通过捕捉和处理异常,程序可以继续执行,而不是因为一个未预期的问题就终止运行。这提高了程序的健壮性,使其在面对异常情况时依然能够提供服务...

    JAVA异常处理的分析与研究.pdf

    在传统的程序设计语言中,异常处理机制非常复杂,JAVA 不仅将异常处理机制引进来,还使得它面向对象。异常处理机制的正确使用可以有效地保证程序的健壮性和可靠性。JAVA 异常处理机制的重要性体现在以下几个方面: ...

    Java异常处理机制应用研究.pdf

    Java 异常处理机制是 Java 程序设计中的一个重要方面,正确使用异常处理的策略和方法,能够确保 Java 程序结构的清晰性、易读性和健壮性。本文将详细介绍 Java 异常处理机制的应用研究,包括 Java 异常体系统结构、...

    java开发异常处理与日志规范

    Java开发中的异常处理和日志规范对于保持代码的健壮性和可维护性至关重要。下面将详细阐述这些要点: 1. **避免捕获可预检查的RuntimeException**:在Java中,像NullPointerException和IndexOutOfBoundsException...

    Java异常处理机制及应用研究.pdf

    Java 异常处理机制是 Java 程序设计的一大难点,也是使用 Java 进行软件开发时不容忽视的问题之一。是否进行异常处理直接关系到开发出的软件的稳定性和健壮性。对 Java 异常处理机制有一个全面的认识,深刻理解 Java...

    Java异常处理机制及应用.pdf

    传统的编程语言没有异常处理机制,错误处理完全靠程序员来完成,而程序员一般以判断返回值的方式处理错误,使正常的程序代码和错误处理代码混在一起,给程序设计和维护带来很大的麻烦。 Java 异常处理机制提供了对...

    Java程序设计异常处理实例

    Java异常处理通过五个关键字来实现:`try`、`catch`、`finally`、`throw`和`throws`。`try`块包含可能抛出异常的代码,`catch`块用于捕获并处理异常,`finally`块包含在任何情况下都需要执行的代码,无论是否发生...

Global site tag (gtag.js) - Google Analytics