`
sunlong
  • 浏览: 86491 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

thinking in java之异常的限制笔记

阅读更多

今天回想了一下java重载时的异常,有些淡忘,所以翻开书重新阅读了一遍。

/**
 * 异常的限制
 * 方法重载时,子类的方法只能抛出父类方法中异常接口或者更少的异常
 * 不能重新抛出新的异常
 * 异常说明并不是方法类型的一部分,了解虚拟机的应该知道,异常是放在异常表中的
 */
package com.sunlong.java3;
import static java.lang.System.out;

class BaseballException extends Exception{}
class FoulException extends BaseballException{}
class StrikeException extends BaseballException{}
class PopFoulException extends FoulException{}

abstract class Inning{
	/**
	 * 构造函数抛出异常
	 */
	public Inning() throws BaseballException{}
	
	/**
	 * 此方法在Strom接口中抛出了另一个异常
	 * @throws BaseballException
	 */
	public void event() throws BaseballException{}
	
	/**
	 * 
	 * @throws FoulException
	 * @throws StrikeException
	 */
	public abstract void atBat() throws FoulException, StrikeException;
	
	/**
	 * 抛出未检查异常
	 */
	public void walk(){}
}

class StromException extends Exception{}
class RainedOutException extends StromException{}
interface Strom{
	void event() throws RainedOutException;
	void rainHard() throws RainedOutException;
}

public class Test extends Inning implements Strom{
	/**
	 * 构造器不受异常限制,意思是子类可以抛出别的异常,但
	 * 子类的构造函数异常说明必须包含父类的构造器说明
	 * 因为父类构造器总被明确或隐含调用
	 * @throws BaseballException
	 * @throws RainedOutException
	 */
	public Test() throws BaseballException, RainedOutException {
		super();//此句明确或者隐含调用
	}
	
	public Test(String s) throws BaseballException, FoulException{
		
	}

	/**
	 * 父类方法并没有抛出任何异常
	 * 所以编译此方法出错
	 */
//	public void walk() throws PopFoulException{
//		
//	}

	/**
	 * 子类方法抛出比父类此方法更少的异常,或者异常的子类
	 */
	public void atBat() throws PopFoulException {
		
	}

	/**
	 * 由于此方法类Inning与接口Strom中同时存在
	 * 那么Strom中的event方法就不能改变Inning中的event异常接口
	 * 同样Inning中的也不能改变Strom中的,所以最后只能是不抛出异常
	 */
	public void event(){
		
	}

	@Override
	public void rainHard() throws RainedOutException {
		
	}
	
	/**
	 * 入口
	 * @param args
	 */
	public static void main(String[] args){
		
		
	}
}
 
分享到:
评论

相关推荐

    Thinking in java .txt

    《Thinking in Java》第四版由布鲁斯·埃克尔(Bruce Eckel)撰写,他是MindView公司的总裁。这本书被广泛认为是学习Java编程语言的经典教材之一。从读者的反馈来看,《Thinking in Java》不仅覆盖了Java的核心概念...

    Thinking in Java 4th Edition Annotated Solutions Guide

    根据提供的文件信息,以下是对文件《Thinking in Java 4th Edition Annotated Solutions Guide》中所包含知识点的详细解释: 首先,文件标题《Thinking in Java 4th Edition Annotated Solutions Guide》指出了这是...

    Thinking in Java读书笔记

    ### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...

    王者归来之Thinking in java读书笔记

    《王者归来之Thinking in Java读书笔记》是对Bruce Eckel的经典之作《Thinking in Java》第四版的深度学习与总结。这本书是Java程序员的必备参考书,它深入浅出地阐述了Java语言的核心概念和技术,旨在帮助读者理解...

    Thinking in Java 4 源码 导入IDEA可直接运行

    《Thinking in Java》是Bruce Eckel的经典之作,第四版(TIJ4)更是Java程序员必读的书籍之一。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、集合框架、多线程、网络编程等众多主题。源码是...

    Thinking in java4(中文高清版)-java的'圣经'

    研讨课 Hands-on Java研讨课CD Thinking in Objects研讨课 Thinking in Enterprise Java Thinking in Patterns(with Java) Thinking in Patterns研讨课 设计咨询与复审 附录B 资源 软件 编辑器与IDE 书籍 分析与设计...

    Thinking in Java 练习题答案

    《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书的练习题是学习Java的重要组成部分,因为它们能够帮助读者巩固理论知识并提升实践能力。以下是对"Thinking in ...

    Thinking in java学习笔记

    《Thinking in Java》是一本深度解析Java编程语言的经典著作,其深入浅出的讲解和丰富的实例使得读者能够全面理解Java的精髓。以下是对书中部分关键知识点的总结: 1. **Java 泛型**:泛型是Java SE 5.0引入的重要...

    Thinking in Java 自学笔记——第二章 一切皆对象

    ### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...

    Thinking in Java 4th Edition + Annotated Solution Guide (代码)英文文字版 带书签 有答案

    《Thinking in Java》是Bruce Eckel的经典之作,第四版涵盖了Java编程语言的广泛主题,适合初学者和有经验的程序员。这本书深入浅出地讲解了Java的核心概念和技术,旨在帮助读者建立坚实的编程基础,并理解面向对象...

    Thinking in Java 自学笔记——第一章 对象导论

    Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...

    Thinkingin Java电子书

    《Thinking in Java》是一本备受推崇的Java编程教材,由Bruce Eckel撰写,被誉为Java学习者的必读之作。这本书深入浅出地介绍了Java语言的核心概念和技术,覆盖了从基础到高级的主题,对于有一定Java基础的读者来说...

    《thinking in java》第三版完整PDF书籍+习题答案(中文版)

    《Thinking in Java》是Bruce Eckel的经典之作,被誉为学习Java编程的权威指南。该书以其深入浅出的方式,详尽地介绍了Java语言的核心概念和技术。第三版是此书的一个重要里程碑,它涵盖了Java语言的诸多关键特性,...

    Thinking in java 电子书

    《Thinking in Java》是 Bruce Eckel 编著的一本经典的Java编程教材,它深受程序员喜爱,被誉为学习Java的必备参考书。这本书全面深入地探讨了Java语言的核心概念和技术,不仅适合初学者,也对有经验的程序员提供了...

    Thinking In Java-Java 编程思想(中英文版 第四版)

    Thinking In Java-Java 编程思想(中英文版 第四版) Thinking In Java-Java 编程思想(中英文版 第四版)

    Thinking in Java Second Edition.doc

    总而言之,《Thinking in Java》第二版之所以备受推崇,是因为它不仅具备了一本优秀的编程书籍所需的所有特质——内容全面、结构合理、语言简洁,更重要的是它能够启迪思维,引导读者深入理解Java语言的本质,培养...

    Thinking in Java 习题答案

    《Thinking in Java》是Bruce Eckel的经典编程教材,它深入浅出地介绍了Java语言的核心概念和技术。这本书以其详尽的解释、丰富的示例和实践性强的习题深受程序员喜爱。"Thinking in Java 习题答案"是配套的解答集,...

    thinking in java 第四版 源码

    《Thinking in Java》是Bruce Eckel的经典之作,第四版更是被广大Java开发者视为学习和进阶的重要参考书籍。这本书深入浅出地介绍了Java语言的核心概念和技术,包括面向对象编程、集合框架、多线程、网络编程、GUI...

    Thinking In Java 源码

    《Thinking in Java》是Bruce Eckel的经典Java编程书籍,它深入浅出地讲解了Java语言的核心概念和技术。这本书不仅适合初学者,也对有经验的程序员提供了深入理解Java的宝贵资源。现在,我们有机会免费下载这本书的...

    Thinking in Java 3rd Edition.rar

    Thinking in Java 3rd Edition.rar Thinking in Java 3rd Edition.rar Thinking in Java 3rd Edition.rar Thinking in Java 3rd Edition.rar Thinking in Java 3rd Edition.rar Thinking in Java 3rd Edition.rar

Global site tag (gtag.js) - Google Analytics