Java异常的中断和恢复

中断:抛出一个异常类的实例而终止现有程序的执行;
恢复:不是抛出一个异常类的实例,而是调用一个用于解决问题的方法或就地解决问题。

在Java中,对那些要调用方法的客户程序员,我们要通知他们可能从自己的方法里“掷”出违例。这是一种有礼貌的做法,只有它才能使客户程序员准确地知道要编写什么代码来捕获所有潜在的违例。

catch(Exception e) {
System.out.println("caught an exception");
}

这段代码能捕获任何违例,所以在实际使用时最好将其置于控制器列表的末尾,防止跟随在后面的任何特殊违例控制器失效。对于程序员常用的所有违例类来说,由于Exception 类是它们的基础,所以我们不会获得关于违例太多的信息,但可调用来自它的基础类Throwable 的方法:

String getMessage()

获得详细的消息。

String toString()

返回对Throwable 的一段简要说明,其中包括详细的消息(如果有的话)。

void printStackTrace()
void printStackTrace(PrintStream)

打印出Throwable 和Throwable 的调用堆栈路径。调用堆栈显示出将我们带到违例发生地点的方法调用的顺序。

第一个版本会打印出标准错误,第二个则打印出我们的选择流程。若在Windows 下工作,就不能重定向标准错误。因此,我们一般愿意使用第二个版本,并将结果送给System.out;这样一来,输出就可重定向到我们希望的任何路径。

时间: 2024-10-25 01:18:13

Java异常的中断和恢复的相关文章

【译】常见 Java 异常解释(恶搞版)

常见 Java 异常解释:(译者注:非技术角度分析.阅读有风险,理解需谨慎o(╯□╰)o) java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读你的算术表达式并再次尝试. ArrayIndexOutOfBoundsException 请查看 IndexOutOfBoundsException.不同之处在于这个异常越界的元素不止一个. ArrayStoreException 你已用光了所有数组,需要从数组商店中购买更多的数组. C

10.Java异常问题

目录介绍 10.0.0.1 见过哪些运行时异常?异常处理机制知道哪些?从异常是否必须需要被处理的角度来看怎么分类? 10.0.0.2 运用Java异常处理机制?异常处理的原理?Java中检查异常和非检查异常的区别? 10.0.0.3 异常处理的过程中,你遵循那些好的实践? throw 和 throws这两个关键字在java中有什么不同? 10.0.0.4 你知道什么是"异常链"吗?自定义实现过哪些异常,怎么写的?可以有一个空的catch块吗? 10.0.0.5 Java异常类有哪些的重

深入浅出计算机组成原理:异常和中断-程序出错了怎么办?(第28讲)

一.引子 过去这么多讲,我们的程序都是自动运行且正常运行的.自动运行的意思是说,我们的程序和指令都是一条条顺序执行,你不需要通过键盘或者网络给这个程序任何输入.正常运行是说,我们的程序都是能够正常执行下去的,没有遇到计算溢出之类的程序错误. 不过,现实的软件世界可没有这么简单.一方面,程序不仅是简单的执行指令,更多的还需要和外部的输入输出打交道.另一方面,程序在执行过程中,还会遇到各种异常情况,比如除以0.溢出,甚至我们自己也可以让程序抛出异常. 那这一讲,我就带你来看看,如果遇到这些情况,计算

1.8 JAVA异常总结

1.8 JAVA异常分类以及处理 异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的. 三种异常:分别为检查性异常(一般异常).运行时异常(非检查性异常).错误 Throwable 子类是Error错误类和Exception 异常类. Exception 子类是IOException 类和 RuntimeException 类.所有的异常类是从 java.lang.Exception 类继承的子类. 详细框架如下图所示. 一.Error 错误用来指 示运行时环境发

Java基础系列5:深入理解Java异常体系

该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 前言: Java的基本理念是“结构不佳的代码不能运行”. “异常”这个词有“我对此感到意外”的意思.问题出现了,你也许不清楚该如何处理,但你的确知道不应该置之不理:你要停下来,看看是不是有别人或在别的地方,能够处理这个问题.只是在当前的环境中还没有足够的信息来解决这个问题,所以就把这个问题提交到一个更高级别的环境中,在

深入理解 Java 异常

目录   1. 异常框架  2. 自定义异常  3. 抛出异常  4. 捕获异常  5. 异常链  6. 异常注意事项  7. 最佳实践  8. 小结  9. 参考资料 ?? 本文已归档到:「javacore」 ?? 本文中的示例代码已归档到:「javacore」 1. 异常框架 1.1. Throwable Throwable 是 Java 语言中所有错误(Error)和异常(Exception)的超类. Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStack

java 异常的捕获及处理

在没有异常处理的程序中如果要回避异常,需要使用大量的判断语句,配合所想到的错误状况来捕捉程序中可能发生的错误.但是这样势必会导致程序运行效率降低.java异常处理机制具有易于使用,可自定义异常类,处理抛出的异常的同时,又不会降低程序运行效率等优点.因而在java程序设计时,应充分的利用异常处理机会,以增进程序的稳定性及效率.1.异常处理示例及基本格式: package javaBasics; public class test5 { public static void main(String[

java异常面试常见题目

在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它成为面试题中的常客.关于Java中Error和Exception的面试题目多是关于Exception和Error的概念,如何处理Exception,以及 处理Exception时需要遵守的最佳实践等等.尽管关于多线程.垃圾回收.JVM概念和面向对象设计等方面的问题依然主宰着这类面试,你仍然需要为回答

Java异常打印输出中常见方法的分析

Java异常是在Java应用中的警报器,在出现异常的情况下,可以帮助我们程序猿们快速定位问题的类型以及位置.但是一般在我们的项目中,由于经验阅历等多方面的原因,依然有若干的童鞋在代码中没有正确的使用异常打印方法,导致在项目的后台日志中,没有收到日志或者日志信息不完整等情况的发生,这些都给项目埋下了若干隐患.本文将深入分析在异常日志打印过程中的若干情况,并给出若干的使用建议. 1. Java异常Exception的结构分析 我们通常所说的Exception主要是继承于Throwable而来,可以参