- 浏览: 1231440 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
package com.lwf.thinking.eight; class BaseBallException extends Exception{} class Foul extends BaseBallException{} class Strike extends BaseBallException{} abstract class Inning{ public Inning() throws BaseBallException{} //注意构造方法抛出了异常。 public void event() throws BaseBallException{ //这里并没有显式throw new BaseBallException(); } public abstract void getName() throws Foul,Strike; public void getAge(){} } class StormException extends Exception{} class RainedOut extends StormException{} class PopFoul extends Foul{} interface Storm{ public void event() throws RainedOut; public void rainHard() throws RainedOut; } public class UserDefineException extends Inning implements Storm{ public UserDefineException() throws BaseBallException,RainedOut{ //1、因为基类的构造方法抛出了异常,根据继承机制,实例化该类必然调用基类实例化,所以该类的构造方法必须显式抛出异常 //2、派生类的构造方法可以抛出基类所没有抛出的异常如RainedOut,注意这一点非构造方法不行。 } public UserDefineException(String s) throws BaseBallException,PopFoul{}//只要抛出类型包含了BaseBallException即可,类国基类只抛出此类型 // public void getName() throws Foul, Strike{} //3、派生类抛出与基类所抛出的对应异常。 // public void getName() throws Foul{} // public void getName() throws Strike{} //4、仅抛出与基类该方法抛出异常中的任意一个 public void getName() throws PopFoul{ } //5、上例中抛出了从Foul继承而来的PopFoul异常 // public void getName(){} //6、不抛出任何对应异常 // public void getName() throws BaseBallException{} //7、compile error,抛出了不与基类对应的抛出异常,注意这里BaseBallException是Strike和Foul的父类也是不行的。 public void event(){} //如果这里没有event方法,程序将报错:意思是抽象类与接口所抛出的异常不兼容。 //注意两个基类抛出了不同的异常:这时即使用public void event() throws BaseBallException, RainedOut{}也是不行的。 public void rainHard() throws RainedOut{} public static void main(String[] args){ try { UserDefineException u = new UserDefineException(); u.getName(); } catch (PopFoul e){ System.out.println("PopFoul"); } catch (RainedOut e) { System.out.println("RainedOut"); } catch (BaseBallException e) { System.out.println("BaseBallException"); } try { Inning i = new UserDefineException(); i.getName(); //向上转型才要求捕获基类所抛出异常,如果不进行向上转型是可以不要求捕获的。 } catch (RainedOut e) { System.out.println("RainedOut"); } catch (Foul e) { System.out.println("BaseBallException"); } catch (Strike e) { e.printStackTrace(); } catch (BaseBallException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /* * 总结一下关于异常的限制: * 对构造方法:基类构造方法抛出异常,派生类构造方法必须显式抛出对应异常(如上例第1点),且可以抛出其它异常,(如上例第2点) * 实质上来说异常限制对构造器不起作用,即构造器可抛出任何异常,但因为派生类构造器不能捕获基类构造器抛出的异常,所以派生类所抛出异常中必须要包含基类所抛出的异常。 * 对普通方法:基类普通方法抛出异常,派生类普通方法可抛出对应异常(如上例第3点)、可少抛出异常(如上例第4点)、 * 可抛出对应基类异常的继承异常子类(如上例第5点)、也可不抛出异常(如上例第6点),但不能抛出与基类不对应的异常(如上例第7点) * 特殊情况:上例中的event方法,因为基类和接口都有event方法,并且抛出的异常类型又不相同,那么注意的是派生这里只有选择不抛出异常,因为 * 不管抛出哪一个或是抛出两个都是不行的。 * * 异常说明: * 异常说明本身并不属于方法原型的一部分,所以不能根据异常说明的不同来重载方法。 * 一个出现在基类异常说明中的异常,不一定会出现在派生类的异常说明中。这点与继承的规则是不同的。 * */
发表评论
-
JVM内存管理及性能调优(内存溢出、内存泄漏)
2015-09-02 07:14 694JAVA内存管理(内存溢出、内存泄漏)相关参考: JA ... -
JAVA可变参数对重载的影响
2014-01-27 15:28 929package com.lwf.test; publi ... -
有关String类创建几个对象的问题
2013-07-09 23:18 1330试题一: String s = new String(& ... -
JDK1.5下实现JDK1.6的Arrays.copyOfRange() 方法
2012-08-29 10:59 1759public static void test(){ i ... -
JAVA四舍五入的处理
2012-02-11 10:47 1012如下,保留两个小数位 double f = 3 ... -
Comparator实现排序
2011-11-16 01:23 1236转自:Comparator实现排序 在java.util包 ... -
JAVA定时器使用
2011-08-19 11:05 774http://hualong.iteye.com/blog/5 ... -
JDK5.0 Annotation学习笔记
2011-07-26 22:48 747http://linliangyi2007.iteye.com ... -
JAVA CP命令
2010-12-31 11:51 10289java -cp .;c:\dir1\lib.jar Test ... -
JDK1.5的新特性及应用
2010-07-13 12:49 1000以下两文: http://heaven-arch.iteye ... -
JAVA面试题150例
2010-05-19 11:44 2051一、Java基础方面 1、作用域public,priva ... -
《thinking in java》第四章:初始化与清理三
2010-05-19 00:21 776http://quicker.iteye.com/blog/5 ... -
JAVA编程思想第四版完整下载地址
2010-05-18 18:35 1259http://hi.baidu.com/yang1101190 ... -
JAVA多线程学习一
2010-04-13 17:21 925http://renyangok.iteye.com/blog ... -
JAVA常用误区整理
2008-01-09 13:12 9071、 float f=1.3;是不对的,编译时会出错,java ... -
try与finally块中return的问题
2008-12-05 14:37 1247针对以下情况进行测试: 情况1:try{} catch( ... -
简单克隆与深度克隆的思考
2008-12-19 16:44 1026白话简单克隆和深度克隆一文 http://blog.csd ... -
一道面试题引发的思考之:类的初始化
2008-12-29 16:23 713本人曾写过JAVA基础方面的blog,也是针对类的初始化的, ... -
JAVA基础学习篇----对象串行化及Transient关键字的使用
2009-01-08 18:07 0http://blog.csdn.net/scruffybea ... -
!JAVA学习提高之---- JAVA日期格式化及相关操作
2009-01-13 17:02 792http://blog.csdn.net/gubaohua/a ...
相关推荐
在Java中,异常类可以作为方法的声明部分,表明该方法可能抛出某种类型的异常。这使得调用者必须处理这些异常,或者将异常传播给上层调用者。在`SavingsAccount`和`CheckingAccount`的`withdraw`方法中,异常通过`...
- 异常是类,可以通过`throw`语句抛出,也可以使用`throws`声明方法可能抛出的异常。 9. **构造器链**: - 当子类创建一个新对象时,会先调用父类的构造器,然后执行子类自己的构造逻辑。这就是构造器链。 在这...
Java的异常类基于继承体系,主要分为两大类: - **Exception**:这是所有检查性异常的基类,包括运行时异常(RuntimeException及其子类)和其他非运行时异常。例如`IOException`、`NoSuchMethodException`等。 - ...
程序员可以通过继承这些类创建自定义异常。 - 构造和析构过程中的异常处理非常重要,因为如果在这些过程中抛出异常,确保对象的正确销毁以避免资源泄漏。 - 异常规格(Exception Specifications)如`noexcept`,...
预定义异常如IOException、NullPointerException等,自定义异常则是程序员根据需要创建的新异常类,通常继承自Exception或其子类。 结构化的异常处理有三种基本形式: 1. `try-catch-finally`:当需要捕获异常并...
所有的异常类都是Throwable的子类,所以它们都继承了Throwable的这些方法。 三、异常的产生 异常可以通过抛出异常对象来产生。例如,在数组越界的情况下,Java虚拟机(JVM)将抛出一个...
这通常发生在类继承结构发生变化后。 #### 21. InstantiationError - 实例化错误 当无法实例化一个类时,会抛出`InstantiationError`。这可能由抽象类或接口的实例化尝试、类加载问题或其他错误引起。 #### 22. ...
- 可以通过继承`Exception`类或其子类来创建自定义异常类。 - 自定义异常类通常用于表示应用程序特有的错误情况。 2. **异常处理与对话框结合**: - 使用`JOptionPane`类可以创建简单的对话框,用于提示用户信息...
5. **异常继承体系**:异常类可以构成继承体系,允许自定义异常类继承自标准异常类或其他自定义异常类,提供更具体的错误信息。 6. **非错误处理**:异常机制并不仅仅用于错误处理,也可以用于程序设计中的其他控制...
Java内部类是Java语言中一个独特且强大的特性,它允许我们在一个类的内部定义另一个类。内部类可以提供更好的封装,使代码结构更加紧凑,并且能够直接访问外部类的私有成员,包括变量和方法。从Java 1.1开始引入,...
在这个例子中,`MyCustomFault`是自定义的异常类,它继承自`FaultException`。当服务方法抛出这个类型的异常时,客户端可以捕获并处理`MyCustomFault`。 总结来说,处理Silverlight中的WCF异常涉及以下几个关键步骤...
•throws声明抛出只能在方法签名中使用,throws可以声明抛出多个异常类,多个异常类之间以逗 号隔开。throws声明抛出的语法格式如下 –throws ExceptionClass1 , ExceptionClass2... 抛出异常 ...
在Python编程语言中,异常处理是程序健壮性的重要组成部分。异常是程序运行时遇到的问题,它们可以打断正常的代码流程。Python提供了丰富的异常类型,这些异常被组织成一个层次结构,使得处理和捕获特定类型的错误...
在Java中,一个重要的限制是单一继承,即一个子类只能有一个直接父类,但一个父类可以有多个子类。这与某些其他语言(如C++)的多重继承不同。然而,Java通过接口(Interface)支持多重继承的类似效果,一个类可以...
开发者可以创建自己的异常类,继承自`std::exception`或直接自定义,以便在特定情况下抛出更有意义的异常。 8. **异常传播**: 如果在`catch`块内部再次抛出异常,原始的异常会被丢弃,新的异常会替代它继续传播...
Java的异常继承自java.lang.Throwable类,包括Error和Exception两个主要子类。Error通常代表系统级错误,如JVM内部错误,程序一般不需要捕获这些错误。而Exception是程序需要处理的异常,可以被程序员通过try-catch...
- 控制访问权限,通过包访问权限来限制哪些类可以访问其他类。 - 避免名字冲突,即使不同包中的类名相同,也可以通过指定完整的包名来明确调用哪个类。 - **命名规则**: - 包名通常采用小写字母。 - 一般遵循`...
异常的继承结构在Java中是层次化的,从`Throwable`类开始,`Error`和`Exception`都继承`Throwable`。`Error`通常代表系统级别的错误,如JVM错误,这些错误通常无法通过程序处理,因此不应在代码中捕获或抛出`Error`...
异常处理在继承层次结构中也是有效的,派生类可以捕获基类抛出的异常。 通过这29页的C++课件,你将全面理解C++中的继承机制,并能熟练运用到实际编程中,提升你的编程能力。记住,掌握继承是迈进C++面向对象编程...