`
phping
  • 浏览: 1937 次
  • 性别: 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异常处理,非常适合Java爱好者

    有关Java异常情况处理的学习笔记,非常适合Java爱好者

    Java学习笔记7.0

    《Java JDK6学习笔记》是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    chapter8 异常处理 231 8.1 语法与继承架构 232 8.1.1 使用try、catch 232 8.1.2 异常继承架构 235 8.1.3 要抓还是要抛 238 8.1.4 认识堆栈追踪 241 8.1.5 关于assert 245 8.2 异常与资源管理 247 ...

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    Java学习笔记(必看经典)

    本书是作者近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API等均进行了...

    Java JDK 5.0学习笔记(第二部分)

    本书是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API...

    瑜琅java学习笔记

    1 java起源 2 java语言概述 3 简单(基本)数据类型 4 运算符:java...8 继承:继承是面向对象编程技术的一块基石,因为它允许创建分等级层次的类 9 包和接口 10异常处理 11多线程编程 12输入/输出、小应用程序and others

    java学习笔记 初学者必读

    8.3. 处理异常 8-38 8.4. 捕捉多个异常 8-38 8.5. finally 声明 8-38 8.6. 异常调用栈 8-39 8.7. 异常层次 8-39 8.8. 一些未检查的异常 8-39 8.9. 写你自己的异常 8-39 8.10. 抛出你自己的异常 8-40 9. 八•图形用户...

    良葛格Java JDK 5.0学习笔记

    本书是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API...

    观看韩顺平学习整理java的笔记到异常

    帮助大家复习java基础知识其中有 hashCode 2 toString 2 finalize 2 用已学知识做出简单的房屋出租系统 3 类方法使用注意事项和细节讨论 4 main()方法 4 代码块 4 代码块使用注意事项和细节 5 ...异常处理 2

    java 学习教学大纲笔记

    java 学习教学大纲笔记1.熟练掌握Java语言开发...7.熟练掌握Java语言中的异常处理机制 8.熟练掌握集合的使用 9.熟练掌握IO流的使用 10.了解范型的使用 11.了解反射机制 12.了解多线程的开发 合成一天 13.了解网络编程

    Java学习笔记之异常处理

    主要为大家详细介绍了Java学习笔记之异常处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    JAVA语言学习笔记4-9

    JAVA语言学习笔记4-9 主要讲JAVA的OOP(面向对象) 封装 继承 多态 以及JAVA中的异常处理机制等

    java基础学习笔记之java oop高级java异常处理机制、集合、文件操作、序列化与反序列化、字符串处理(三)

    JAVA异常处理机制 一、什么异常(Exception) 1.生活中异常:不正常事件(意外) 2.程序异常:异常是指在程序的运行过程中所发生的不 正常的事件(例外,错误),它会中断正在运行的程序。 3.什么是异常处理:java编程语言使用...

    JAVA(J2SEJ2EE)学习笔记pdf

    本人两个月来的学习笔记,经过老师的课件和总结精心整理而成。   内容包括:j2se语法、循环控制、OOP设计、方法设计、重写、重载、抽象类/方法、接口、异常处理、多线程、swing。以及部分oracle内容。   本笔记是...

    java内部学习笔记.docx

    5.1 Java异常处理机制 49 5.2 File文件类 51 5.3 RandomAccessFile类 53 5.4基本流:FIS和FOS 55 5.5缓冲字节高级流:BIS和BOS 56 5.6基本数据类型高级流:DIS和DOS 56 5.7字符高级流:ISR和OSW 57 5.8缓冲字符高级...

    Java学习笔记(必看经典).doc

    里面包含基础知识,如修饰符,常用的关键字等,内部类,面向对象思想,异常处理相关知识点,常用集合知识点等等。

    Java基础笔记.md

    包含jdk的安装(建议安装版本1.8),java语言概念、基本数据类型、条件控制、面向对象基本概念、继承和多态、接口、java异常处理、内部类和匿名类。通俗易懂,易于理解的大纲。希望对大家有帮助!!!

    Java学习笔记

    java学习的笔记,回顾一些基本的要领,知识点,很有帮助 比如: Day Eight 异常: 异常的分类 Java会将所有的异常封装成对象,其根本父类为Throwable。 Throwable有两个子类:Error 和Exception。 Error:一个...

    Java JDK 5.0学习笔记(第一部分)

    本书是作者良葛格本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API...

Global site tag (gtag.js) - Google Analytics