易截截图软件、单文件、免安装、纯绿色、仅160KB

Java异常设计方法

    前些时候,把《Thinking in Java》中异常这一章翻出来再次研读,本人有些收获,并且有些观点和作者观点不太一致,共享之
1.异常的定义
    一个系统中定义异常应遵循如下几个原则:
a. 系统中如果某个模块功能比较单一,建议将所有异常放在一个package内;如果某个模块有很多子模块,建议将异常放各个对应子模块内;
b. 异常名称必须是自定义的;
c. 自定义异常都继承之Exception(不要继承RuntimeException);
d. 所有异常含有含有两个构造器:一个缺省构造器,一个用于构建异常链的构造器。
示例如下:
public class MyException1 extends Exception{
 public MyException1() {
  
 }
 
 public MyException1(Throwable cause) {
  super(cause);
 }
}
2.异常的处理
   在异常处理程序中遵循如下原则:
a. 本方法能处理的异常,异常处理程序中就处理掉,不向外层传递;
b. 本方法不能处理的异常,必须使用异常链,封装为本模块的异常向上传递。
示例如下:
public class test {
 public static void f() throws MyException1{
  throw new MyException1();
 }
 
 public static void main(String[] args) throws MyException2{
  try {
   f();
  } catch(MyException1 e) {
   throw new MyException2(e);
  }
 }
}
【注】:Bruce   Eckel指出建议使用runtimeException封装异常。本人认为,在系统设计中不应该这么做,因为在开发实际系统是,各个模块开发人员不一样,如果开发人员用runtimeException封装了异常,其他使用该模块的开发人员很难知道模块中抛出了异常。


相关文档:

java使用rocksaw和vserv tcpip实现基于ICMP的Ping功能

一:准备 www.savarese.org download
 1.  rocksaw-1.0.0-src.tar.gz
 2.  vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
 1.  build vserv-tcpip-0.9.2-src
      在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......

java装箱与拆箱

/**
* ==号是比较两个基本类型是否相等,或者比较两个对象引用是否相同
*/
public class T {

public static void main(String[] args) {
Integer i1 = 128;
Integer i2 = 128;
int i3 = 128;
int i4 = 128;
Integer i5 = 127;
Integer i6 = 127; ......

java中的instanceof关键字【转贴】

 instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。举个例子:
  String s = "I AM an Object!";
  boolean isObject = s instanceof Object;
  我们声明了一个Str ......

java的23种设计模式(MM版)

关于23种设计模式的有趣见解
       作者以轻松的语言比喻了java的23种模式,有很好的启发作用。
        创建型模式
        
        1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基 ......

三分钟理解Java中字符串(String)的存储和赋值原理


可能很多java的初学者对String的存储和赋值有迷惑,以下是一个很简单的测试用例,你只需要花几分钟时间便可理解。
1.在看例子之前,确保你理解以下几个术语:
栈 :由JVM分配区域,用于保存线程执行的动作和数据引用。栈是一个运行的单位,Java中一个线程就会相应有一个线程栈与之对应。
堆 :由JVM分配的,用于存储对 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号