#### 1. 定义类 MyException

n 声明类 MyException，并扩展 Exception

n 声明构造方法 MyException ()

n 在构造方法中调用 Super（）来完成构造方法实现

#### 2. 定义类 YourException

n 声明类 YourException，并扩展 MyException

n 声明构造方法 YourException ()

n 在构造方法中调用 Super（）来完成构造方法实现

#### 3. 声明类 ChainDemo

#### 4. 声明类方法 someMethod2 ()

#### 5. 在方法 someMethod2 ()中创建一个 YourException 并抛出

#### 6. 声明类方法 someMethod1 ()

#### 7. 调用方法 someMethod2 ()并将此代码至于 try 代码块中

#### 8. 在 catch 代码块中捕捉意外 YourException 进行处理

n 调用 getMessage ()方法输出意外信息

n 创建一个 MyException 实例

n 利用捕捉到的意外实例初始化 MyException 实例

n 抛出 MyException 实例

#### 9. 添加 main（）

#### 10. 调用方法 someMethod1 ()并将此代码至于 try 代码块中

#### 11. 在 catch 代码块中捕捉意外 MyException 进行处理。

#### 说明：一个 Exception 可以由另外一个实例来构建，不同的意外由不同的意外处理方法，这样就形成一个意外处理链。

// ChainDemo.java

//用来演示意外捕捉的次序

class MyException extends Exception

{

MyException ()

{

super ("My Exception");

}

}

class YourException extends Exception

{

YourException ()

{

super ("Your Exception");

}

}

class ChainDemo

{

public static void main (String [] args)

{

try

{

someMethod1 ();

}

catch (MyException e)

{

e.printStackTrace ();

}

}

static void someMethod1 () throws MyException

{

try

{

someMethod2 ();

}

catch (YourException e)

{

System.out.println (e.getMessage ());

MyException e2 = new MyException ();

e2.initCause (e);

throw e2;

}

}

static void someMethod2 () throws YourException

{

throw new YourException ();

}

}

####

####