Java异常类的父类Throwable,直接派生两个子类:Error类和Exception类。
Error 是与系统或JVM相关的异常,标志着严重的系统错误。
Exception 用于用户程序可能捕捉的异常。它有一个子类RuntimeException,该类型的异常自动为Java程序定义包括被零除和数组下标越界等这样的异常错误。RuntimeException及其子类被称为运行时异常。
Exception类及其子类继承Throwable若干方法:
public String getMessage() 该方法返回一个详细描述异常的字符串。
public String toString() 该方法返回一个简洁描述该异常的字符串。
public void printStackTrace()
非检查型异常:Error及其子类和RuntimeException及其子类。
ArithmeticException、ArrayIndexOutOfBoundsException、ClassCastException、IndexOutOfBoundsException、EmptyStackException、NegativeArraySizeException、NullPointerException、NumberFormatException、StringIndexOutOfBounds;
检查型异常:Exception及其除了RuntimeException以为的所有子类。
ClassNotFoundException、CloneNotSupportedException、FileNotFoundException、IllegalAccessException、IOException、InterruptedException;
异常的捕获与处理:
try语句:try-catch-finally,finally子句提供统一的出口。finally子句是可选的,通常可以进行资源的清除工作。
注意:try子句后至少应该有一个catch子句或finally子句。
说明:1、不论异常是否发生,finally块总是被执行。(当一个异常没有对应的catch时,执行完finally后,再将这个异常抛给上层)。
2、无论有没有catch块,一旦异常出现,同一try块中异常发生点以后的代码都不被执行。
3、当没有catch块处理异常时,默认异常处理程序打印出有关的异常信息并终止程序。
例如:
public class ExceptionCatch
{
public static void main(String[] strs)
{
System.out.println("RuntimeException test: ");
int a = 5;
int b = 0;
for(int i=1; i>=0; i--)
{
try
{
System.out.println("i="+i);
b=a/i;
System.out.println("After no exception occur!");
}
/* catch(ArithmeticException e)
{
System.out.println("Catch block, i.e.exception handling code.");
}*/
finally
{
System.out.println("Finally block!");
}
System.out.println("After finally block!");
}
}
}
抛出异常:
指定方法抛出的异常:
<返回类型><方法名>(<参数列表>)throws <异常类型列表>
{
<方法体>
}
例如:
public void readFile(String file) throws FileNotFoundException
{
FileInputStream f = new FileInputStream(file);
..........
}
throw语句抛出的异常:
throw <throwable 或其子类对象>;
注意:1、一般这种抛出异常的语句应该被定义为在满足一定条件时执行。(如:把throw语句放在if语句的if分支中)。
2、catch后的参数类型必须和throw后的表达式类型一致。(即或者一样,或者前者为后者的父类)
3、含有throw语句的方法,应该在方法头定义中增加如下部分:throws <异常类名列表>
例如:
public class TestThrow
{
public static void main(String args[]) throws ArrayIndexOutOfBoundsException
{
int a[]={1,2,3};
int i = 3;
if(i>2 || i<0) throw new ArrayIndexOutOfBoundsException();
else System.out.println(a[i]);
}
}
自定义异常类:
1、声明一个新的异常类,使之以Exception类或者其他某个已经存在的系统异常类或用户异常类为父类。
2、为新的异常类定义属性和方法,或覆盖父类的属性和方法,使这些属性和方法能够体现该类所对应的错误的信息。
分享到:
相关推荐
在"Java程序设计异常处理实例"中,我们通常会看到以下几种常见的异常类型: 1. `NullPointerException`:当试图访问或操作一个null对象时抛出。 2. `ArithmeticException`:在进行非法数学运算时抛出,比如除以零。...
异常处理不仅仅是捕获错误,更重要的是通过合理的异常设计,让程序能更好地恢复状态,或者至少提供有意义的错误信息给用户。学习并熟练掌握Java异常处理,将有助于编写出更加稳定和健壮的程序。在实际开发中,应尽量...
**异常处理程序设计** 在Java中,`try-catch`块用于捕获和处理异常。在`try`块内,可能抛出异常的代码会被执行。如果发生异常,控制流会立即跳转到与该异常匹配的`catch`块。每个`catch`块可以捕获一种特定类型的...
Java 程序设计之异常处理 在 Java 程序设计中,异常处理是非常重要的一部分。异常是指程序在执行过程中出现的错误或异常情况,例如文件不存在、网络连接中断、操作数超出预定范围等。在 Java 中,异常本身作为一个...
本资源摘要信息总结了Java程序设计的真题集锦,涵盖了Java程序设计的各个方面,包括Java基础知识、Java数组、Java GUI编程、Java事件处理、Java集合框架、Java文件输入输出、Java异常处理、Java多线程编程、Java网络...
《Java程序设计》共分12章,内容包括Java语言概述、面向对象编程初步、Java的基本语法、类库与数组、面向对象编程深入、图形用户界面编程、异常处理和输入输出,以及多线程编程等内容。 本书讲解Java程序设计知识...
标题中的“java程序设计例题全集”意味着这份资料包含了大量关于Java编程的实践题目,这些题目可能包括基础语法、类与对象、异常处理、集合框架、多线程、网络编程等多个方面,是学习和巩固Java编程技能的理想资源。...
Java程序设计是计算机科学中的一个重要领域,主要涉及使用Java编程语言进行软件开发。Java是一种广泛应用于服务器端、桌面应用、移动应用(尤其是Android平台)的高级编程语言。天津大学计算机系提供的这门java程序...
《Java程序设计习题集》是同作者所编写的清华大学教材《Java程序设计》相配套的习题集。习题集内容覆盖面广,包括:Java言的基本常识、基本语法、面向对象的基本概念、数组、字符串、异常处理、文件和数据流、图形...
### 处理异常Java程序实验报告知识点解析 #### 实验背景 本次实验旨在通过实际操作加深对Java异常处理机制的理解。异常处理是编程语言中一个非常重要的概念,它能够帮助开发者更好地控制程序运行过程中的非预期行为...
【Java程序设计基础】 在Java程序设计中,基础至关重要。Java是一种面向对象的编程语言,由Sun Microsystems(现为Oracle公司)的James Gosling于1995年发布。它的设计目标是“简单、面向对象、健壮、安全”,这...
《Java程序设计(第3版)》是唐大仕教授编著的一本深入浅出的Java编程教材,适合初学者和有一定经验的开发者学习。这本书的课件包含了丰富的教学资源,帮助读者更好地理解和掌握Java语言的核心概念和技术。下面将根据...
Java语言中的异常处理是程序设计的重要组成部分,它主要用于处理程序运行时发生的错误情况,以保证程序的健壮性和可靠性。在Java中,异常是指程序在运行过程中发生的非正常情况,需要进行特别处理。异常处理机制为...
### Java程序中的异常处理 #### 异常处理概念与机制 在Java编程中,异常处理是一种用于处理程序运行过程中可能出现的错误或意外情况的重要机制。它可以帮助开发者更好地控制程序流,确保程序即使在遇到错误的情况...
Java 异常的基本概念和语法开始,讲述 Java 异常处理的基本知识,分析 Java 异常体系结构,对比 Spring 的异常处理框架,阐述异常处理的基本原则,并提出了自己处理一个大型应用系统异常的思想,并通过设计一个异常...
"JAVA程序设计知识点总结" ...本资源摘要信息涵盖了JAVA程序设计的多个方面,包括Java语法、对象oriented programming、异常处理、多线程、事件处理等,为学习JAVA程序设计提供了一个系统的参考。
Java程序设计基础是编程学习的重要领域,主要涵盖了Java语言的基础概念、语法结构和特性。Java是一种全面面向对象的编程语言,由Sun公司的James Gosling等人于1990年开发,最初命名为Oak,后来因互联网的兴起而更名...
在学习Java程序设计时,课后答案对于巩固理解、检查自我学习进度以及深化编程技能至关重要。本教程涵盖了Java语言的基础概念、语法特性以及高级编程技巧。 1. **基础概念** - **变量与数据类型**:Java支持基本...