Java异常处理机制PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/12/10
4
try catch throw throws finally
5个关键字
2020/12/10
5
一个异常处理块的通常形式
try {
// block of code to monitor for errors
}
catch (ExceptionType1 exOb) {
2020/12/10
2
示例
public class HelloWorld {
public static void main (String args[]) {
int i = 0;
String greetings [] = {
"Hello world!",
"No, I mean it!",
"HELLO WORLD!!"
11
一个例子
import java.util.Random;
class HandleError {
public static void main(String args[]) {
int a=0, b=0, c=0;
Random r = new Random();
一个try和它的catch语句形成了一个单元。
catch子句的范围限制于try语句前面所定义的
语句。一个catch语句不能捕获另一个try声明
所引发的异常(除非是嵌套的try语句情况)。
被try保护的语句声明必须在一个大括号之内
(也就是说,它们必须在一个块中)。你不能 单
独使用try。 2020/12/10
2020/12/10
来自百度文库
7
2020/12/10
8
使用try和catch
尽管由Java运行时系统提供的默认异常处理程序 对于调试是很有用的,但通常你希望 自己处理异
常。这样做有两个好处。第一,它允许你修正错 误。第二,它防止程序自动终 止。大多数用户对
于在程序终止运行和在无论何时错误发生都会打 印堆栈轨迹感到很烦恼
(至少可以这么说)。幸运的是,这很容易避免。
为防止和处理一个运行时错误,只需要把你所要 监控的代码放进一个try块就可以了。 紧跟着try 块的,包括一个说明你希望捕获的错误类型的 catch子句。完成这个任务很简单
2020/12/10
9
异常的try块和一个catch子句
class Exc2 {
另一类分支由Error作为顶层,Error定义了在通常环境 下不希望被程序捕获的异常。 Error类型的异常用于 Java运行时系统来显示与运行时系统本身有关的错误。 堆栈溢出是这 种错误的一例。本章将不讨论关于Error 类型的异常处理,因为它们通常是灾难性的致命错 误, 不是你的程序可以控制的。
// exception handler for ExceptionType1
}
catch (ExceptionType2 exOb) {
// exception handler for ExceptionType2
}
// ...
finally {
// block of code to be executed before try block
} catch (ArithmeticException e) { // catch divide-byzero error
System.out.println("Division by zero.");
}
System.out.println("After catch statement.");
Java的异常
2020/12/10
1
异常处理
异常(exception)是在运行时代码序列中产 生一种异常情 况。换句话说,异常是一个
运行时错误。在不支持异常处理的计算机 语言中,错误必须被 手工的检查和处理— —典型的是通过错误代码的运用等等。这 种方法既很笨拙也很麻烦。 Java的异常处 理避免了这些问题,而且在处理过程中, 把运行时错误的管理带到了面向对 象的世 界。
ends
}
2020/12/10
6
异常类型
所有异常类型都是内置类Throwable的子类。因此, Throwable在异常类层次结构的顶 层。紧接着 Throwable下面的是两个把异常分成两个不同分支的子 类。一个分支是Exception。
该类用于用户程序可能捕捉的异常情况。它也是你可以用 来创建你自己用户异常类型子类 的类。在Exception分 支中有一个重要子类RuntimeException。该类型的 异常自动为你所编写 的程序定义并且包括被零除和非法 数组索引这样的错误。
public static void main(String args[]) {
int d, a;
try { // monitor a block of code.
d = 0;
a = 42 / d;
System.out.println("This will not be printed.");
}
}
该程序输出如下: Division by zero. After catch
statement.
2020/12/10
10
注意 :
在try块中的对println( )的调用是永远不会执 行的。一旦异常被引发,程序控制由try
块转到catch块。执行永远不会从catch块“返 回”到try块。因此,“This will not be printed。” 将不会被显示。一旦执行了catch 语句,程序控制从整个try/catch机制的下面一 行继续。
};
while (i < 4) {
System.out.println (greetings[i]);
i++;
}
}
2020/12/10
3
异常处理基础
Java异常是一个描述在代码段中发生的异常(也 就是出错)情况的对象。当异常情况发生,一个 代表该异常的对象被创建并且在导致该错误的方 法中被引发(throw)。该方法 可以选择自己处 理异常或传递该异常。两种情况下,该异常被捕 获(caught)并处理。异 常可能是由Java运行 时系统产生,或者是由你的手工代码产生。被 Java引发的异常与违反语 言规范或超出Java执 行环境限制的基本错误有关。手工编码产生的异 常基本上用于报告方 法调用程序的出错状况。