* Java异常结构
1.Error(错误)
Error类型异常用于 Java 运行时系统来显示与运行时与系统有关的错误。堆栈溢出是这种错误的一种。它们通常是致命性的错误,程序本身是无法控制的。
2. RuntimeException(运行时异常)
比如:NullPointerException、IndexOutBoundsException、ArithmeticException(除数为0)、IllegalArgumentException
这些异常不是检查异常,程序中可以选择处理捕获,也可以不处理,这种异常是可以避免的,程序员应当减少代码中的错误。
3.CheckedException(检查型异常、非运行时异常)
从程序语法角度说必须进行处理该异常,如果不处理就无法通过编译。如:IOExeption、SQLException及用户自定义异常等。
*try-catch异常处理
import java.util.*;
public class a {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
boolean cotinueInput = true;
do {
try {
System.out.println("输入一个整型数据:");
int number = scanner.nextInt(); //可以产生数据类型不一致异常
System.out.println(" 你输入的是:" + number);
cotinueInput = false;
}
catch (InputMismatchException e) {
System.out.println("出现异常 Try again" + e.toString());
scanner.nextLine();
}
}
while (cotinueInput == true);
}
}
一个try可以对应多个catch语句,分别处理不同的异常。如果在try内产生异常,那么此异常对象交给Java运行系统。此时Java运行系统从上到下分别对每个catch语句处理的异常类型进行检测,直到检测到第一个类型相匹配的catch语句为止。类型匹配
是指catch所处理的异常类型与生成的异常对象的类型完全一致,或者是生成异常对象的父类,因此,catch语句的排列顺序应该是从特殊到一般。那祖父、父、子的排序。
*try-catch嵌套
public class a {
public static void main(String args[]) {
boolean tag = false;
try {
int a = 0; //改变值 产生不同的异常
int b = 3 / a; //除数为0异常
System.out.println("a = " + a);
try { //内层try
tag = true;
if (a == 1) {
a = a / (a - 1); //除数为0异常 被外层catch捕获
}
if (a == 2) {
int[] c = {2};
c[22] = 23; //数组越界异常 内层可捕获,外捕不需要捕获
}
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组越界异常");
}
finally {
System.out.println("内层 都会执行");
}
}
catch (Exception e) {
if (tag) {
System.out.print("里层try语句抛出的异常");
}
System.out.println("除数为0异常");
}
finally {
System.out.println("外层 都会执行");
}
}
}
内层如果不能捕获,则异常交给外层,外层如果不能捕获,产生错误。
*finally
无论是否有异常,都会执行finally语句块。
上例中,当a = 1 时 结果:
*throw 语句抛出异常
throw 异常对象名
public class a {
public static void main(String args[]) {
boolean tag = false;
try {
if (tag == false) {
throw new Exception(); //主动抛出异常
}
}
catch(Exception e) {
System.out.println("这是一个主动抛出的异常");
}
}
}
throw语句通常在方法体中,如果想在上一级代码捕获处理异常,则需要在方法中用throws 关键字声明要抛出异常的类型。
*throws声明方法可能抛出的异常
public class a {
static void shows(String s) throws MyException {
throw new MyException(s);
}
public static void main(String args[]) {
try {
shows("异常也"); //调用shows()方法
}
catch(MyException e) {
System.out.println(e.toString());
}
}
}
//自定义异常类
class MyException extends Exception {
MyException() {
super();
}
MyException(String s) {
super(s);
}
}
分享到:
相关推荐
这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些核心知识点的详细阐述: 1. **泛型改进**:在JDK 7中,泛型的使用更加灵活,引入了类型推断(Type Inference)特性,通过...
Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。
1. **Java基础**:介绍Java语言的基本语法,如变量、数据类型、运算符、控制流程(条件语句、循环)、数组、字符串以及异常处理。这些基础知识是理解和编写任何Java程序的基石。 2. **面向对象编程**:深入讲解Java...
Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...
"Java入门第二季学习笔记"可能深入到更复杂的主题,如异常处理、集合框架、IO流和线程。异常处理是Java中处理错误的重要机制,使得程序更加健壮。集合框架包括ArrayList、LinkedList、HashSet、HashMap等数据结构,...
6. **Java Database Connectivity (JDBC)**:JDBC 4.0引入了一些新特性,如自动连接池管理、统一的异常处理和增强的驱动程序元数据。 7. **Web服务支持**:Java API for RESTful Web Services (JAX-RS) 1.0的引入,...
Java JDK 8是Java开发工具集的一个重要版本,它的发布带来了许多创新特性和改进,极大地提升了开发者的工作效率。...这份"java JDK 8学习笔记"提供了清晰的目录结构,便于查阅和学习,是Java初学者的宝贵资源。
此外,笔记可能还会涉及异常处理,这是Java中处理错误的重要机制,通过try-catch-finally语句块来捕获并处理运行时错误。线程和并发处理也是Java的一大亮点,JDK5.0对多线程的支持进一步加强,提供了更高级的并发...
《Java JDK6学习笔记》是由林信良编著的一本针对Java初学者和进阶者的学习资料,书中详细讲解了Java编程语言与JDK6版本的相关知识。这本笔记不仅包含传统的Java学习内容,还结合了作者独特的见解和实践经验,为读者...
书中还详细阐述了异常处理,这是Java程序健壮性的重要组成部分。读者将学习如何使用try-catch-finally结构捕获和处理异常,以及如何自定义异常。 此外,《JAVA学习笔记》还涵盖了集合框架,包括ArrayList、...
总的来说,这份"Java学习笔记PPT"是初学者和进阶者学习Java的理想资料,覆盖了语言基础、面向对象、集合框架、异常处理、I/O系统、多线程等多个方面,旨在帮助读者系统地掌握Java编程技能,并能灵活运用到实际项目中...
《Java JDK 8学习笔记》是由林信良教授在2015年3月出版的一本详尽解析Java SE 8新特性的书籍,由清华大学出版社发行。这本书共计643页,内容完整且清晰,包含目录和书签,便于读者高效地查阅和学习。 在Java JDK 8...
《Java JDK 6 学习笔记》这本书很可能是为了帮助读者深入理解和掌握这个版本的Java编程语言及其开发环境。以下是一些关键知识点的详细说明: 1. **自动装箱与拆箱**:Java 6中引入了自动装箱和拆箱功能,使得基本...
Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...
4. **异常处理**:Java通过try-catch-finally结构进行异常处理,有助于编写健壮的代码,提高程序稳定性。 5. **输入/输出**:Java的I/O流系统支持文件操作和网络通信,如FileReader、FileWriter、BufferedReader、...
3. **异常处理**:Java的异常处理机制提供了处理程序运行时错误的方式。这部分会介绍如何使用try-catch-finally块,以及不同类型的异常类,如IOException、NullPointerException等。 4. **集合框架**:Java集合框架...
**Java JDK 7学习笔记概述** Java JDK 7(Java Development Kit 7)是Java编程语言的一个重要版本,由Sun Microsystems(后被Oracle公司收购)开发,并于2011年7月28日正式发布。这个版本引入了一系列新特性、改进...
3. **异常处理**:Java的异常处理机制是其强大的特性之一,学习笔记会讲解如何使用try-catch-finally语句块来捕获和处理程序运行时可能出现的错误。 4. **集合框架**:Java集合框架是存储和操作对象的重要工具,...
Java面试题及学习笔记概述 Java作为一种广泛应用的编程语言,其面试题库广泛且深入,涵盖了从基础语法到高级特性的各个层面。本篇将基于常见的Java面试问题,结合学习笔记,深入探讨Java的核心概念和技术。 一、...