#### 1. 定义类 MyException

n 声明类 MyException，并扩展 Exception

n 声明构造方法 MyException ()

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

#### 2. 声明类 ThrowAgain

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

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

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

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

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

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

n 继续抛出 MyException 实例 e

#### 8. 添加 main（）

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

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

#### 说明：通过将意外多次抛出可以实现意外的多层处理。

// ThrowAgain.java

//用来演示意外的多层处理机制

class MyException extends Exception

{

MyException ()

{

super ("My Exception");

}

}

class ThrowAgain

{

public static void main (String [] args)

{

try

{

someMethod1 ();

}

catch (MyException e)

{

System.out.println ("main(): " + e.getMessage ());

e.printStackTrace ();

}

}

static void someMethod1 () throws MyException

{

try

{

someMethod2 ();

}

catch (MyException e)

{

System.out.println ("someMethod1(): " + e.getMessage ());

e.printStackTrace ();

throw e;

}

}

static void someMethod2 () throws MyException

{

throw new MyException ();

}

}