Java异常在方法覆盖时的原则

6人阅读 评论(0) 收藏 举报
分类:

先提出问题:父类的方法需要抛出异常,子类的方法是否要同样抛出异常?抛出同样的异常?能否抛重点内容出父类没有的异常?还是一定要抛出父类所抛出异常范围内的异常?
这种情况下三个原则:
1、子类重写父类方法要抛出与父类一致的异常,或者不抛出异常
2、子类重写父类方法所抛出的异常不能超过父类的范畴(仅指检查型异常)
备注:子类重写的方法可以抛出任何运行期异常
3、子类在重写父类的具有异常声明的方法的同时,又去实现了具有相同方法名称的接口且该接口中的方法也具有异常声明,则子类中的重写的方法,要么不抛出异常,要么抛出父类中方法声明异常与接口中方法声明的异常的交集

查看评论

《程序员》杂志试刊一发刊词

发刊词    60年的计算机发展史,就是一部程序员历史。    “软件推动计算机,计算机推动历史”,这样的说法并不过分。中国的PC时代,也完全是一个程序员时代,严援朝、吴晓军、求伯君、王选、鲍岳桥、王...
  • ycrao
  • ycrao
  • 2000-11-24 16:59:00
  • 3136

java-覆盖equals时规则不容忽视

尽管object是一个具体类,涉及它就是为了扩展它,它所有的非final方法(equals,hashCode,toString,clone和finalize)都有一些通用的规定,因为它们被设计就是用来...
  • lonely_fireworks
  • lonely_fireworks
  • 2012-09-13 15:36:10
  • 5133

方法覆盖子类不能抛出比父类范围更大的异常

// 此程序依据的原理是子类对象即是父类对象 class EatException extends Exception { } class Father {  public void eat(...
  • ld513508088
  • ld513508088
  • 2013-05-10 10:46:04
  • 557

System.Data.Entity.Core.MetadataException类型的异常在EntityFramework.dll中发生

...但未在用户代码中进行处理。 其他信息:无法加载指定的元数据资源
  • hangyejiadao
  • hangyejiadao
  • 2016-11-17 20:45:11
  • 4071

异常处理--“System.BadImageFormatException”类型的未经处理的异常在 DataTest.exe 中发生

今天写了一个测试的控制台应用程序,需要引用一个第三方dll,结果程序运行到要创建第三方dll中的一个类的实例的时候,总是报异常,“System.BadImageFormatException”类型的未...
  • shouhou_Bingo
  • shouhou_Bingo
  • 2016-11-25 17:01:20
  • 6672

“System.TypeInitializationException”类型的异常在 EntityFramework.dll 中发生,但未在用户代码中进行处理

断点查看是无法打开configSource内的文件在使用 配置文件分离写法时,出现错误要将configSource内分离的所有config文件属性 设置为 始终复制输出就可以了...
  • qq_36535245
  • qq_36535245
  • 2017-11-14 18:29:53
  • 1259

“System.StackOverflowException”类型的未经处理的异常在 MySql.Data.dll 中发生”的错误处理

使用visual studio C#开发应用,最近在把数据库从MS SQL迁移到Mysql时,发现原来在MS SQL下一切正常的程序,报出下面的错误。在网上找了很多文章,也试图升级相关的dll文件,但...
  • jimmy_2017
  • jimmy_2017
  • 2017-09-13 15:05:45
  • 761

未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。

未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。其他信息: 系统错误。修改SQL数据库时出现有关调用实时(JIT)...
  • CRSUN
  • CRSUN
  • 2004-12-08 14:18:00
  • 10015

“System.Data.Entity.Infrastructure.DbUpdateConcurrencyException”类型的异常在 EntityFramework.dll 中发生,但未在用户

“System.Data.Entity.Infrastructure.DbUpdateConcurrencyException”类型的异常在 EntityFramework.dll 中发生,但未在用户...
  • Panda_m
  • Panda_m
  • 2015-09-25 12:30:31
  • 4757

“System.ArgumentException”类型的未经处理的异常出现在 mscorlib.dll 中。

“System.ArgumentException”类型的未经处理的异常出现在 mscorlib.dll 中。
  • aurora_csdn
  • aurora_csdn
  • 2014-11-17 10:42:34
  • 3363
    个人资料
    等级:
    访问量: 9万+
    积分: 273
    排名: 99万+
    文章分类
    文章存档