Java异常机制小结
——总结人:唐冰
一、异常的关键字:
一般来说,异常的关键字有:try、catch、finally、throw、throws。
网上的资料对这几个关键字是这样解释的:
try: Opening exception-handling statement.
catch: Captures the exception.
finally: Runs its code before terminating the program.
throws: Lists the exceptions a method could throw.
Throw: Transfers control of the method to the exception handler.
try语句
try语句用大括号{}指定了一段代码,该段代码可能会抛弃一个或多个例外。
catch语句
catch语句的参数类似于方法的声明,包括一个例外类型和一个例外对象。例外类型必须为Throwable类的子类,它指明了catch语句所处理的例外类型,例外对象则由运行时系统在try所指定的代码块中生成并被捕获,大括号中包含对象的处理,其中可以调用对象的方法。
catch语句可以有多个,分别处理不同类的例外。Java运行时系统从上到下分别对每个catch语句处理的例外类型进行检测,直到找到类型相匹配的catch语句为止。这里,类型匹配指catch所处理的例外类型与生成的例外对象的类型完全一致或者是它的父类,因此,catch语句的排列顺序应该是从特殊到一般。也可以用一个catch语句处理多个例外类型,这时它的例外类型参数应该是这多个例外类型的父类,程序设计中要根据具体的情况来选择catch语句的例外处理类型。
finally语句
try所限定的代码中,当抛弃一个例外时,其后的代码不会被执行。通过finally语句可以指定一块代码。无论try所指定的程序块中抛弃或不抛弃例外,也无论catch语句的例外类型是否与所抛弃的例外的类型一致,finally所指定的代码都要被执行,它提供了统一的出口。通常在finally语句中可以进行资源的清除工作。如关闭打开的文件等。
throws语句
throws总是出现在一个函数头中,用来标明该成员函数可能抛出的各种异常。对大多数Exception子类来说,Java 编译器会强迫你声明在一个成员函数中抛出的异常的类型。如果异常的类型是Error或 RuntimeException, 或它们的子类,这个规则不起作用, 因为这在程序的正常部分中是不期待出现的。 如果你想明确地抛出一个RuntimeException,你必须用throws语句来声明它的类型
throw语句
throw总是出现在函数体中,用来抛出一个异常。程序会在throw语句后立即终止,它后面的语句执行不到,然后在包含它的所有try块中(可能在上层调用函数中)从里向外寻找含有与其匹配的catch子句的try块。
其实,我个人觉得,简单的来说:throws与throw从拼写上只相差一个s,但是功能、作用上有很大的区别。throws用于在方法和类处声明可能抛出的所有异常信息。throw而throw就是单个语句抛出异常,是指抛出的一个具体的异常类型,使用在方法(类)的内部。
如:
………………………………………………………………………………………………………
public class showUI throws Exception(){
public void tbstudy throws Exception(){
****;//
try{
/* 这里是要处理的异常 */
}
Catch(Exception of){
System.out.println(of);//打印出异常
}
}
}
………………………………………………………………………………………………………
throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法(即调用该方法或类的所有地方);
throw则需要用户自己捕获相关的异常,而后再对其进行相关处理(如打印异常的地方,类型等),最后将处理后的异常信息抛出。
他们对异常处理方式也不同.throws对异常不处理,谁调用谁处理,throws的Exception的取值范围要大于方法内部异常的最大范围,而cathch的范围又要大于throws的Exception的范围;throw 主动抛出自定义异常类对象。
二、异常继承体系
异常的继承结构
三、java处理异常方式
在java代码中如果发生异常,jvm(java虚拟机)会抛出异常对象,导致程序代码中断,这个时候jvm在做的操作就是:创建异常对象,然后抛出,比如:
1.int i= 1;
2.int j = 0;
3.int res = 0;
4.res = i/j;//除0错误
5.System.out.println(res);
这5句代码运行到第四句会中断,因为jvm抛出了异常
2.throw的作用:手动抛出异常。有时候有些错误在jvm看来不是错误,比如:
1. int age = 0;
2. age = -100;
3.System.out.println(age);
很正常的整形变量赋值,但是在我们眼中看来就不正常,谁的年龄会是负的呢?!所以我们需要自己手动引发异常,这就是throw的作用
int age = 0;
age = -100;
if(age<0){
Exception e = new Exception(); //创建异常对象
throw e; //抛出异常
}
System.out.println(age);
java中的异常机制
异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。
传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常,但是如果函数确实要返回-1这个正确的值时就会出现混淆;可读性降低,将程序代码与处理异常的代码混叠在一起;由调用函数的程序来分析错误,这就要求客户程序员对库函数有很深的了解。
在使用File类的方法时,如正在将U盘里面的照片复制到电脑里时,有人将U盘拔掉了。这时我们的复制程序就会出错,即抛出异常。当出现程序无法控制的外部环境问题(用户提供的文件不存在或者创建文件时已有同名文件存在,文件内容损坏,网络不可用...)时,JAVA就会用异常对象来描述。
异常情况通常有三大类:
(1)检查性异常:java.lang.Exception
(2)运行期异常:java.lang.RuntimeException
(3)错误:java.lang.Error
它们都是java.lang.Throwable类的子孙类。如右图:
Throwable 类是 Java 语言中所有错误和异常类的父类,对于具体的异常,不应该使用Throwable类,而应该使用其他三者之一。
检查性异常------程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。JAVA编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常------这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,JAVA编译器强制要求处理这类异常。用来表示设计或实现方面的问题,如数组越界等。因为设计和实现正确的程序不会引发这类异常,所以常常不处理它。发生这类异常时,运行时环境会输出一条信息,提示用户修正错误。
错误------一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。Error表示很难恢复的错误,如内存越界。一般不期望用户程序来处理,即使程序员有能力处理这种错误,也还是交给系统处理为好。
Java异常机制小结
——总结人:唐冰

- 大小: 14.2 KB
分享到:
相关推荐
总结来说,Java异常处理机制提供了一种结构化的方法来处理程序运行时的错误,通过try-catch-finally结构捕获和处理异常,同时,利用断言进行内部逻辑验证,以及日志记录来跟踪程序行为。这样的机制增强了代码的健壮...
### Java异常处理总结 #### 一、Java异常的基础知识 在Java编程中,异常处理是一项极其重要的技术。异常处理能够帮助开发者优雅地处理程序运行时遇到的问题,避免程序崩溃,并提供给用户友好的反馈信息。 **什么...
在Java的第二阶段学习中,我们深入探讨了Java语言的核心特性以及如何利用这些特性来构建高效、可维护的代码。这一阶段的学习涵盖了面向对象编程、类与对象、封装、继承、多态等核心概念,同时也涉及了异常处理、集合...
### JAVA基础阶段总结 #### 一、JAVA简介与特点 **JAVA** 是一种高级编程语言,它被设计用于编写能够跨平台运行的应用程序。由 Sun Microsystems 公司于1995年推出,并在2010年被 Oracle 公司收购。JAVA 技术以其...
本文主要总结了Java异常处理机制及其相关知识点。 首先,异常机制是Java中用于处理程序运行时错误的框架。当程序执行过程中遇到问题,异常机制会提供一个安全的出口,使得程序控制权能够转移到预先定义的异常处理器...
### JAVA的异常处理机制 #### 引言 Java作为一种广泛使用的编程语言,其强大的功能不仅体现在高效的代码编写上,还在于其对程序错误处理的高度灵活性与健壮性。Java的异常处理机制是Java语言的一项重要特性,它...
Java学习路线是一个逐步深入的过程,尤其对于初学者来说,一个清晰的计划至关重要。以下是对Java学习路线的详细解析: **第一阶段:Java基础** - **Java开发介绍**:理解DOS命令,掌握JVM(Java虚拟机)、JRE(Java...
Java异常处理是编程中至关重要的一个环节,它...总之,Java异常处理是保障程序稳定运行的关键技术,理解并熟练掌握异常处理机制,能够帮助开发者编写出更加健壮、易于维护的代码,有效应对程序运行中的各种异常情况。
本教程主要针对Java2阶段的学习,旨在帮助初学者深入理解和掌握Java的核心概念与实践技巧。 一、面向对象编程基础 Java是一种面向对象的编程语言,其核心思想是类、对象和封装。在这一部分,你需要理解如何定义类,...
Java异常处理机制为程序员提供了一种优雅的方式来处理程序执行过程中可能出现的问题。通过合理地使用`try`、`catch`和`finally`等关键字,开发者可以确保程序即使遇到问题也能以可控的方式运行或终止。同时,通过...
总结起来,这篇毕业设计论文的外文翻译深入探讨了Java异常处理的概念、机制以及其在程序设计中的重要性。通过理解和应用这些知识,开发者可以编写出更健壮、易于维护的Java程序,有效地处理运行时出现的各种问题。
总的来说,Java的异常处理机制提供了一种优雅的方式来处理运行时可能出现的问题,确保程序的健壮性和稳定性。通过理解和熟练使用异常处理,开发者可以编写出更可靠、更具容错性的代码。在实际开发中,应当根据具体...
### Java异常专题详解 #### 一、Java异常概述 在Java编程中,异常处理机制是一项非常重要的技术。它主要用于管理程序执行过程中...通过本专题的学习,你应该能够更好地理解和掌握Java异常处理的核心概念和技术细节。
Java异常处理是编程过程中的重要组成部分,主要用于处理程序运行时可能出现的问题。异常是程序执行过程中发生的事件,这些事件可能会导致程序中断。Java的异常处理机制是通过五个关键字来实现的:try、catch、...
Java异常处理机制是强大的,能够帮助开发者识别和解决各种运行时错误。理解每种异常的含义及其触发条件对于编写健壮的、可维护的代码至关重要。在开发过程中,应尽可能预防和处理异常,以提高程序的稳定性和用户体验...
### 计算机中Java异常详解 在计算机编程领域,特别是Java语言中,**异常**是一种常见的编程概念,用于处理程序执行过程中可能出现的各种错误或不正常情况。理解Java中的异常处理机制对于编写健壮、可靠的代码至关...
- **编译时异常**:这类异常由Java编译器在编译阶段检测到,并要求程序员必须处理这些异常。如果不处理,编译器将拒绝编译。例如,`IOException`就是一个典型的编译时异常。 - **运行时异常**:这类异常是在程序运行...
### Java学习心得分享 #### 一、引言 随着信息技术的快速发展,编程语言成为现代社会发展不可或缺的一部分。在众多编程语言中,Java凭借其强大的功能、跨平台的优势以及丰富的类库支持,成为了许多开发者首选的...
Java作为一门广泛应用的编程语言,其异常处理机制是其设计中的一大亮点,旨在帮助开发者更好地控制和处理程序运行时可能遇到的错误。在Java中,异常主要分为两大类:`RuntimeException`和`CheckedException`,它们...
Java知识体系总结 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现已被Oracle公司收购)于1995年推出。它以其“一次编写,到处运行”的特性闻名,适用于开发跨平台的应用程序,包括桌面应用、企业...