在线报名 | 加入收藏 | 学校地图

电话:400-0379-707 QQ:710034203

首页 > 学习园地 > Java学习 > 正文阅读

洛阳北大青鸟:Java程序设计与问题的解决

发布时间:2012-08-30 17:19:19 点击:0
洛阳北大青鸟导读:异常处理允许读者为程序的正常情况单独设计和编写代码,并与不正常情况下的处理代码分开throw语句的作用类似一个方法调用,但它并没有去调用一个方法,而是调用了catc块预定义的异常类Exception是所有异常类的祖...

异常处理允许读者为程序的正常情况单独设计和编写代码,并与不正常情况下的处理代码分开

throw语句的作用类似一个方法调用,但它并没有去调用一个方法,而是调用了catc块

预定义的异常类Exception是所有异常类的祖先,我们也可以定义自己的异常类

如果程序试图使用一个越界的数组索引,就会抛出一个ArrayIndexOutOfBoundsException异常,除非在一个catch块中把这个异常捕获,否则程序就会结束。对于这种特殊的异常,通常不在catch中捕获它。这种异常说明代码有逻辑错误,需要更改代码而不是捕获异常,因此这种异常通常起到运行时提示错误的功能,而不是异常的功能

自定义异常类时,构造器通常是仅有的不是从基类中继承的方法

在定义异常类时,应当保留getMessage不变,为了保证这个功能,应当在自定义异常

类的构造函数中调用super(message);public MySpecialException(String message)

  { super(message);…

  }

如果要在自己的代码中插入throw语句,最好定义自己的异常类,这样当自己的代码捕获一个异常时,多个catch块可以区分自己的异常和预定义的类中的方法抛出的异常,这样能更精确的捕获异常已经做异常处理(领会精神)声明异常(类比推脱责任)

加入有个方法methodA声明如下:public void methodA() throws DivideByZeroException在这种情况下,methodA就免除了捕获在其执行期间所抛出的任何DivideByZeroException类型的异常的责任;而输入有一个methodB方法中包好对methodA的调用,则methodB必须捕获并处理这个异常

如果一个方法抛出了异常,而这个异常没有在此方法中被捕获,则这个异常抛出后,该方法的调用立即结束

如果某个方法在其throws子句中列出了一个异常,且某段代码中有对该方法的调用,则代码必须捕获此异常或者在throws子句中声明此异常

如果在派生类中重定义某方法,则重定义的方法的throws的子句不能包含基类中同一个方法的throws子句中没有列出的异常,但是可以减少重定义的方法的throws子句中声明的异常断言检测失败时会抛出AssertionError类的异常,一般这个异常不会被某个catch块捕获,但是如果愿意,可以将其捕获,只是这种做法不常见Error类或RuntimeException类的子孙类异常不需要被catch块捕获或被throws子句声明,其实这些类并不是异常,只是其表现类似异常,因此也把它们看做异常

对于多重抛出和捕获,首次捕获时需捕获更明确的异常

throw语句并不是抛出异常的唯一一种语句。方法调用也能抛出异常。(明确的说,方法调用可以抛出其throws子句中声明的异常)

如果可以用别的方法容易解决问题,就不要抛出异常大多数情况下,throw语句应当用在方法内且在该方法的throws子句中声明,也就是把抛出异常和捕获异常分离到单独的不同方法中去

在catch块内抛出异常是合法的

在普通的Java应用程序中没有捕获的异常会使程序在显示一个错误信息之后结束,但在

GUI程序中(Jframe GUI或applet)的未捕获异常不会使程序结束,而且除非你去捕获异常,否则GUI程序可能无法应付该异常,用户也会很茫然,因此GUI程序中确保所有抛出的异常都被捕获尤其重要

分享该网页到:   转播到腾讯微博  分享到QQ空间
  • ①理论课
  • ②上机课
  • ③职业导向训练(COT)
  • ④指导学习课(DLC)
  • ⑤项目案例课
  • ⑥在线培训课(OLTL)
  • ⑦阶段项目课
  • ⑧毕业设计课
人才招聘 | 视频专区 | 专题活动 | 认证查询 | 网站地图