`
jackleechina
  • 浏览: 585325 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

java 复习笔记——异常处理

    博客分类:
  • java
 
阅读更多
1)
对于RuntimeException,通常不需要我们去捕获,这类异常由Java运行系统自动抛出并自动处理。
2)
如果父类中的方法抛出多个异常,则子类中的覆盖方法要么抛出相同的异常,要么抛出异常的子类,但不能抛出新的异常(注:构造方法除外)。
3)
我们可以在方法声明时,声明一个不会抛出的异常,Java编译器就会强迫方法的使用者对异常进行处理。这种方式通常应用于abstract base class和interface中。
4)
import java.io.*;
class Excep
{
	Excep() throws ArithmeticException
	{
	}
	public int division(int a,int b) throws ArithmeticException,DivisorIsMinusException//Exception
	{
		//try
		//{
			if(b<0)
				throw new DivisorIsMinusException("Divisor can't be minus");
			return a/b;
		/*}
		catch(ArithmeticException e)
		{
			
			e.printStackTrace();
			throw new Exception("can't divide by zero");
			//throw e;   //继续抛出异常
			//return 0;
		}*/
		
	}
	public int fn1(int a,int b) throws ArithmeticException,DivisorIsMinusException//Exception
	{
		return division(a,b);
	}
}

class ChildExcep extends Excep//子类中的覆盖方法要么抛出相同的异常,要么抛出
                         //异常的子类,但不能抛出新的异常(注:构造方法除外)。

{
	ChildExcep() throws FileNotFoundException
	{
	}
	public int division(int a,int b) throws ArithmeticException,DivisorIsMinusException
	{
		return a/b;
	}
}
class DivisorIsMinusException extends Exception//自定义异常
{
	DivisorIsMinusException(String str)
	{
		super(str);
	}
}
class ExcepTest
{
	public static int method1(Excep excep)
	{
		try
		{
			return excep.division(5,0);
		}
		catch(ArithmeticException e)
		{
			System.out.println(e.toString());
		}
		catch(DivisorIsMinusException ex)
		{
			System.out.println(ex.toString());
			//System.exit(-1);
			//return;
		}
		return 0;
	}
	public static void main(String[] args) //throws Exception
	{
		ChildExcep ce=new ChildExcep();
		method1(ce);
		Excep excep=new Excep();
		try
		{
			//excep.division(5,0);	
			excep.fn1(5,-1);
			System.out.println("exception");
			return;
		}
		
		catch(ArithmeticException e)
		{
			System.out.println(e.toString());
		}
		catch(DivisorIsMinusException ex)
		{
			System.out.println(ex.toString());
			System.exit(-1);   //执行此句后,不执行finally语句
			//return;
		}
		catch(Exception e)//放到最后,先写具体的异常捕获
		{
			//System.out.println("can't divide by zero");
			//System.out.println(e.getMessage());
			//System.out.println(e.toString());
			e.printStackTrace();
		}
		finally//始终会被执行,除了在此之前执行了System.exit(-1);
		{
			System.out.println("finally");
		}
		System.out.println("finish");
	}
}


摘自:孙鑫老师java视频
分享到:
评论

相关推荐

    超详细的Java复习知识点2019——个人笔记.zip

    这份名为"超详细的Java复习知识点2019——个人笔记"的文档,旨在为初学者提供一个全面且深入理解Java基础知识的指南。笔记内容可能涵盖了以下几个关键领域: 1. **Java语法基础**:包括变量、数据类型、运算符、...

    java复习笔记

    这份"java复习笔记"旨在帮助学习者系统地回顾和深入理解Java的关键概念和技术,以便于提升编程技能和应对各种开发挑战。 一、基础语法 Java的基础语法包括变量、数据类型、运算符、流程控制语句等。例如,变量是...

    JSP复习笔记——第11章 JSP 构架和MVC设计模式

    本篇复习笔记主要关注的是JSP构架以及MVC(Model-View-Controller)设计模式的应用。 MVC设计模式是软件工程中的一种架构模式,它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)...

    Java基础复习笔记——数据结构和算法浅谈-附件资源

    Java基础复习笔记——数据结构和算法浅谈-附件资源

    学习笔记——资料

    【Java学习笔记——全面解析】 Java作为一种广泛应用的高级编程语言,是软件开发领域的核心力量。这份"学习笔记——资料"涵盖了Java学习的各个方面,旨在帮助初学者和有经验的开发者巩固基础,提升技能。以下是对这...

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

    这份"Java JDK 6学习笔记——ppt简体版"很可能是对这一版本特性和使用方法的详细讲解,旨在帮助初学者和有经验的开发者深入理解JDK 6的核心功能和改进。 JDK(Java Development Kit)是Java编程语言的软件开发工具...

    Java基础 学习笔记 Markdownr版

    3. 输入/输出(IO)流:Java的15IO流.md文件深入解析了IO流的使用,包括文件流、字符流、字节流以及缓冲流的处理。IO流是数据传输的桥梁,允许程序与外部设备进行数据交换。 4. 多线程:在10多线程.md中,介绍了...

    大一下Java大作业——双人联机小游戏森林冰火人.zip

    【描述】中的“大学生Java学习笔记,复习巩固,课程大作业,课程设计,期末复习”暗示了这个项目是学生学习过程中的一个重要部分,它可能包括了课堂所学的全部Java概念和技术,如面向对象编程、类与对象、继承、多态...

    Java期末考试复习笔记

    ### Java期末考试复习笔记 #### 第一章:Java入门 - **Java的特点**: - **面向对象**:Java的设计原则之一就是支持面向对象编程(OOP),这使得它非常适合于构建复杂的、可维护的应用程序。 - **与平台无关**:...

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

    Jworld@TW技术论坛版主,Java权威技术顾问与专业讲师,Java畅销书作者——林信良全新力作。  国内第一本Java 7,前期版本累计销量5万册。  《Java JDK 7学习笔记》针对Java SE 7新功能全面改版,无论是章节架构或...

    Java基础复习笔记07数据结构-树的概述

    本篇复习笔记主要关注树的概述,包括树的概念、基本操作、使用场景以及一种特殊的树实现——记父节点实现。 1. **树的概念** 树是一种由N个节点构成的有限集合,这些节点之间存在父子关系。与线性结构(如数组、...

    Java基础复习笔记09数据结构-哈夫曼树

    ### Java基础复习笔记09数据结构-哈夫曼树 #### 概述 本文档主要介绍了Java中的数据结构——哈夫曼树(Huffman Tree),并深入探讨了其原理、构造方法以及应用实例。哈夫曼树是一种带权路径长度最短的二叉树,在...

    北大青鸟复习笔记

    【北大青鸟复习笔记】是针对信息技术领域,特别是计算机网络知识的总结,主要涵盖了第三代计算机网络的概念及其核心特征。在这一阶段,网络的发展基于开放系统互连(OSI)参考模型,这是一个国际标准,用于定义网络...

    Java大作业安卓开发——Word-Ocean Dictionary(词海).zip

    【描述】"大学生JAVA学习笔记,复习巩固,课程作业,课程设计" 暗示这可能是某个大学课程的一部分,学生通过这个项目来实践Java编程和Android应用开发的知识。这可能涵盖了从基础概念到高级特性的全面学习,如UI设计...

    硅谷java基础每日复习eDiary

    以下是基于描述中提到的两个文件——"Java基础每日复习笔记-JavaSE基础阶段.edf"和"Java基础每日复习笔记-JavaSE高级阶段.edf"——所包含的知识点的详细阐述: 1. **Java SE基础阶段**: - **Java简介**:了解Java...

    java 解惑

    6. **Java 十大基础笔记整理(PDF).zip**:这是一份整理好的Java基础知识点的笔记,涵盖了类、对象、接口、继承、异常处理、输入输出、集合框架等关键概念,适合初学者和复习者参考。 通过这些文件,我们可以系统...

    适合新手练手的项目 java初学者 视频+源码+笔记都有度娘链接永久有效

    本文将详细介绍一个专门为Java初学者设计的练手项目——杰信商贸SS版本,包括项目的背景、特点以及如何通过视频教程、源代码和笔记进行学习。 #### 二、项目简介 ##### 2.1 项目概述 杰信商贸SS版本是一款模拟商贸...

    java_PeiXun.rar

    这些材料可能涉及从基础语法、面向对象编程概念,到高级特性如多线程、网络编程、I/O流、集合框架、异常处理等全面的Java知识体系。 【标签】"java"明确指出了文件内容的主题,Java是一种广泛使用的编程语言,尤其...

    scjp考试模拟机——基于jdk5.0

    1. **题库模拟**:模拟机通常包含大量的模拟试题,覆盖了SCJP考试的所有知识点,如基本语法、类与对象、异常处理、多线程、集合框架、I/O流、反射等。这些题目旨在帮助考生熟悉考试的题型和难度,提高答题速度。 2....

Global site tag (gtag.js) - Google Analytics