Java异常处理总结:
异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦!
Java语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的异常包括错误概念),定义异常处理的规范,在1.4版本以后增加了异常链机制,从而便于跟踪异常!这是Java语言设计者的高明之处,也是Java语言中的一个难点,下面是我对Java异常知识的一个总结,也算是资源回收一下。
1、Throwable
Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只有此类或其子类之一才可以是 catch 子句中的参数类型。
两个子类的实例,Error 和 Exception,通常用于指示发生了异常情况。通常,这些实例是在异常情况的上下文中新近创建的,因此包含了相关的信息(比如堆栈跟踪数据)。
2、Exception
Exception 类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件,表示程序本身可以处理的异常。
3、Error
Error 是 Throwable 的子类,表示仅靠程序本身无法恢复的严重错误,用于指示合理的应用程序不应该试图捕获的严重问题。
在执行该方法期间,无需在方法中通过throws声明可能抛出但没有捕获的 Error 的任何子类,因为Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过。
4、RuntimeException
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有用try...catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过,这种异常可以通过改进代码实现来避免。
5、ThreadDeath
调用 Thread 类中带有零参数的 stop 方法时,受害线程将抛出一个 ThreadDeath 实例。
仅当应用程序在被异步终止后必须清除时才应该捕获这个类的实例。如果 ThreadDeath 被一个方法捕获,那么将它重新抛出非常重要,因为这样才能让该线程真正终止。
如果没有捕获 ThreadDeath,则顶级错误处理程序不会输出消息。
虽然 ThreadDeath 类是“正常出现”的,但它只能是 Error 的子类而不是 Exception 的子类,因为许多应用程序捕获所有出现的 Exception,然后又将其放弃。
GUI总结:
图形用户界面GUI它包括了java.Swing包和java.awt包。awt包具有了图形用户界面的最基础的方法,但却无法做到跨平台;Swing包则可以跨平台,它可以支持awt中相似的类所不能支持的特性,重写了容器类和主键类。而现在我们用的最多的就是SWT,即是包Swing和包awt组合着用。
容器和组件
容器就是放组件和容器的地方,组件就是组成容器的一部分。容器有一个首层容器类JFrame,里面有各种方法可以用于图形用户界面。容器可以自己生成一个窗体,窗体包括蓝色部分的标题栏和白色部分的内容面版。也可以自定义生成窗体,自定义窗体需要建一个类来继承JFrame就可以了。
布局管理器
布局管理器共分为四种:FlowLayout(流布局管理器)、BorderLayout(边界布局管理器)、GirdLayout(网格布局管理器)和CardLayout。主要的是前面三种。
FlowLayout:按从上到下,从左往右,由中间向两边开始,位置随着窗体的大小而改变,边框随着内容(字体)大小而改变。它只是空布局的一个补充。
BorderLayout:将窗体分为东西南北中五个部分,“东西南北中,南北要贯通,中间是最大”,默认布局是在中间。每个部分是用来放置容器的。
GirdLayout:它是按行列均分。