`
phping
  • 浏览: 2014 次
  • 性别: Icon_minigender_1
  • 来自: 湘潭
社区版块
存档分类
最新评论

Java异常处理的学习笔记

阅读更多

* 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);
	}
}
分享到:
评论

相关推荐

    Java JDK 7学习笔记 PDF

    这个PDF学习笔记是开发者深入理解JDK 7特性和功能的重要参考资料。以下是对Java JDK 7的一些核心知识点的详细阐述: 1. **泛型改进**:在JDK 7中,泛型的使用更加灵活,引入了类型推断(Type Inference)特性,通过...

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

    java学习笔记markdown

    1. **Java基础**:介绍Java语言的基本语法,如变量、数据类型、运算符、控制流程(条件语句、循环)、数组、字符串以及异常处理。这些基础知识是理解和编写任何Java程序的基石。 2. **面向对象编程**:深入讲解Java...

    Java JDK 6学习笔记——ppt简体版

    Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...

    Java入门学习笔记

    "Java入门第二季学习笔记"可能深入到更复杂的主题,如异常处理、集合框架、IO流和线程。异常处理是Java中处理错误的重要机制,使得程序更加健壮。集合框架包括ArrayList、LinkedList、HashSet、HashMap等数据结构,...

    Java JDK 6学习笔记.zip

    6. **Java Database Connectivity (JDBC)**:JDBC 4.0引入了一些新特性,如自动连接池管理、统一的异常处理和增强的驱动程序元数据。 7. **Web服务支持**:Java API for RESTful Web Services (JAX-RS) 1.0的引入,...

    java JDK 8学习笔记

    Java JDK 8是Java开发工具集的一个重要版本,它的发布带来了许多创新特性和改进,极大地提升了开发者的工作效率。...这份"java JDK 8学习笔记"提供了清晰的目录结构,便于查阅和学习,是Java初学者的宝贵资源。

    Java学习笔记——良葛格

    此外,笔记可能还会涉及异常处理,这是Java中处理错误的重要机制,通过try-catch-finally语句块来捕获并处理运行时错误。线程和并发处理也是Java的一大亮点,JDK5.0对多线程的支持进一步加强,提供了更高级的并发...

    JavaJDK6学习笔记(林信良著)

    《Java JDK6学习笔记》是由林信良编著的一本针对Java初学者和进阶者的学习资料,书中详细讲解了Java编程语言与JDK6版本的相关知识。这本笔记不仅包含传统的Java学习内容,还结合了作者独特的见解和实践经验,为读者...

    JAVA学习笔记 林信良

    书中还详细阐述了异常处理,这是Java程序健壮性的重要组成部分。读者将学习如何使用try-catch-finally结构捕获和处理异常,以及如何自定义异常。 此外,《JAVA学习笔记》还涵盖了集合框架,包括ArrayList、...

    Java学习笔记PPT

    总的来说,这份"Java学习笔记PPT"是初学者和进阶者学习Java的理想资料,覆盖了语言基础、面向对象、集合框架、异常处理、I/O系统、多线程等多个方面,旨在帮助读者系统地掌握Java编程技能,并能灵活运用到实际项目中...

    Java JDK 8学习笔记 带完整书签(不是页码书签哦)

    《Java JDK 8学习笔记》是由林信良教授在2015年3月出版的一本详尽解析Java SE 8新特性的书籍,由清华大学出版社发行。这本书共计643页,内容完整且清晰,包含目录和书签,便于读者高效地查阅和学习。 在Java JDK 8...

    《Java JDK 6 学习笔记》配书示例

    《Java JDK 6 学习笔记》这本书很可能是为了帮助读者深入理解和掌握这个版本的Java编程语言及其开发环境。以下是一些关键知识点的详细说明: 1. **自动装箱与拆箱**:Java 6中引入了自动装箱和拆箱功能,使得基本...

    Java开发学习笔记

    Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...

    Java基础尚硅谷宋红康学习笔记

    4. **异常处理**:Java通过try-catch-finally结构进行异常处理,有助于编写健壮的代码,提高程序稳定性。 5. **输入/输出**:Java的I/O流系统支持文件操作和网络通信,如FileReader、FileWriter、BufferedReader、...

    《Java学习笔记》

    3. **异常处理**:Java的异常处理机制提供了处理程序运行时错误的方式。这部分会介绍如何使用try-catch-finally块,以及不同类型的异常类,如IOException、NullPointerException等。 4. **集合框架**:Java集合框架...

    Java JDK 7学习笔记 完整扫描版

    **Java JDK 7学习笔记概述** Java JDK 7(Java Development Kit 7)是Java编程语言的一个重要版本,由Sun Microsystems(后被Oracle公司收购)开发,并于2011年7月28日正式发布。这个版本引入了一系列新特性、改进...

    Java学习笔记(源码)

    3. **异常处理**:Java的异常处理机制是其强大的特性之一,学习笔记会讲解如何使用try-catch-finally语句块来捕获和处理程序运行时可能出现的错误。 4. **集合框架**:Java集合框架是存储和操作对象的重要工具,...

    java面试题 学习笔记

    Java面试题及学习笔记概述 Java作为一种广泛应用的编程语言,其面试题库广泛且深入,涵盖了从基础语法到高级特性的各个层面。本篇将基于常见的Java面试问题,结合学习笔记,深入探讨Java的核心概念和技术。 一、...

Global site tag (gtag.js) - Google Analytics